设计模式之建造者(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();   
 

省略指导者:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值