Builder模式也属于一种创建模式,它主要用来产生比较复杂的对象。假如我们现在有
一个很复杂的对象,它有好多部件组成,如果我们用new在构造器中构建的话,这样
代码的耦合度很高,不能实现解耦的目的。这就要求我们将各个部件的生产和各个部
件的组装分开来做。就好比生产一台电脑,一些部门专门负责生产各种的部件(CPU,
显示卡,声卡,硬盘,显示器等),另外一些部门负责组装这些部件。就好比买个组
装电脑。要实现Builder模式,我们需要借助几个类来实现:
public abstract class Builder{
public abstract void builderA();
public abstract void buliderB();
public abstract void buliderC();
...........................
public Product getProcuct()
//空实现留给Director来重载
}
}
public class concreteBulider extends Builder {
ClassA aA;
ClassB bB;
ClassC cC;
public void buliderA(){
//具体来构造部件A
}
public void buliderB(){ }
//具体来构造部件B
}
public void buliderC(){
//具体来构造部件C
}
.................................
public class Director {
public void constructor( Bulider bulider ){
bulider.builderA();
builder.builderB();
builder.builderC();
}
public Product gerProduct(){
//把 aA,bB,cC组装为最终产品
return "产品";
}
}
public class Client {
public static void main(String[ ] args){
Builder builder = new ConcreterBuilder();
builder.contructor(builder);
builder.getProduct();
}
}
这样各个部件的生产让concreteBuilder来完成,具体的组装又Director来完成,这样代码的
耦合性就减少了。