设计模式之建造者(builder)模式


抽象建造者:

Java代码   收藏代码
  1. public interface Builder {  
  2.   
  3.   protected Product pro = new Product();  
  4.   
  5.   void buildPartA();   //创建部件A  比如创建汽车车轮  
  6.     
  7.   void buildPartB();  //创建部件B 比如创建汽车方向盘  
  8.     
  9.   void buildPartC();  //创建部件C 比如创建汽车发动机  
  10.     
  11.   Product getResult(){  
  12.         return pro;  
  13.     };  
  14.         //返回最后组装成品结果 (返回最后装配好的汽车)  
  15.         //成品的组装过程不在这里进行,而是转移到下面的Director类中进行.  
  16.         //从而实现了解耦过程和部件  
  17. }   

 具体建造者:

Java代码   收藏代码
  1. public class ConcreteBuilder implements Builder {  
  2.   
  3.   Part partA, partB, partC;  
  4.   
  5.   public void buildPartA() {      
  6.         pro.setXX()...    //此处装配Product  
  7.   };  
  8.   
  9.   public void buildPartB() {  
  10.     //这里是具体如何构建partB的代码  
  11.   };  
  12.   
  13.    public void buildPartC() {  
  14.     //这里是具体如何构建partB的代码  
  15.   };  
  16.     
  17. }  

 指导者:

Java代码   收藏代码
  1. public class Director {  
  2.   
  3.   private Builder builder;  
  4.   
  5.   public Director( Builder builder ) {  
  6.     this.builder = builder;  
  7.   }  
  8.   
  9.   // 将部件partA partB partC最后组成复杂对象  
  10.   //这里是将车轮 方向盘和发动机组装成汽车的过程  
  11.   public void construct() {  
  12.     builder.buildPartA();  
  13.     builder.buildPartB();  
  14.     builder.buildPartC();  
  15.   }  
  16.   
  17. }   
 

使用:

Java代码   收藏代码
  1. ConcreteBuilder builder = new ConcreteBuilder();  
  2. Director director = new Director( builder );  
  3.   
  4. director.construct();  
  5. Product product = builder.getResult();   
 

省略指导者:


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页