建造模式Builder
/**
* 抽象建造者
*/
public abstract class Builder {
public abstract void buildPart1();
public abstract void buildPart2();
public abstract Product retrieveResult();
}
/**
* 具体建造着
*/
public class ConcreteBuilder extends Builder {
private Product product = new Product();
@Override
public void buildPart1() {
}
@Override
public void buildPart2() {
}
@Override
public Product retrieveResult() {
return product;
}
}
/**
* 产品
*/
public class Product {
}
/**
* 导演着
*/
public class Director {
private Builder builder;
public void construct() {
builder = new ConcreteBuilder();
builder.buildPart1();
builder.buildPart2();
builder.retrieveResult();
}
}
public class TestBuilder {
public static void main(String[] args) {
ConcreteBuilder concreteBuiler = new ConcreteBuilder();
Director director = new Director();
director.construct();
Product product = concreteBuiler.retrieveResult();
}
}