设计模式之Builder模式

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来完成,这样代码的

耦合性就减少了。

你可能感兴趣的:(设计模式,c,.net,asp.net,asp)