建造者模式
建造者模式属于创建型模式
模式动机
创建复杂产品,如房屋。 房屋由各个部分构成,使用建造者模式不需要关注创建的内部细节,建造者将其部件与组装分离。
定义
将一个复杂对象的的构建与表示分离,同样的构建过程可以创建出不同的复杂对象。
角色
- 抽象创建者builder
- 具体创建者 concrete Builder
- 指挥者 directer—-一方面它隔离了客户与生产过程;另一方面它负责控制产品的生成过程。
- 产品 product
代码
package per.jbz.builder;
/**
* 指挥者
* @author Coding_Jbz
*
*/
public class Director {
private Builder builder;
public void setBuilder(Builder builder){
this.builder = builder;
}
public Product construt(){
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
return builder.getResult();
}
}
/**
* 抽象建造者
**/
package per.jbz.builder;
public interface Builder {
public void buildPartA();
public void buildPartB();
public void buildPartC();
public Product getResult();
}
package per.jbz.builder;
public class BBuilder implements Builder {
private Product product = new Product();
@Override
public void buildPartA() {
product.setPartA("BpartA");
}
@Override
public void buildPartB() {
product.setPartB("BpartB");
}
@Override
public void buildPartC() {
product.setPartC("BpartC");
}
@Override
public Product getResult() {
return product;
}
}