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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:12   2576   0


抽象建造者:

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

具体建造者:

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

指导者:

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

使用:

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

省略指导者:


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP