设计模式之略见一斑(建造模式builder)

 

建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。

建造模式很象抽象工厂模式,细微的区别的大概只有在反复使用的方能体会。

举个简单的例子,如汽车,有很多部件,车轮,方向盘,发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成一部汽车,这个装配过程也很复杂(需要很好的组装技术), builder模式就是为了将部件和组装分开。

下面就简单列出代码:

  Director(建造者)利用Builder(建造工具)来创建这个产品

 

首先是一个建造工具(builder)接口

public interface Builder { 

  //创建部件A  比如创建汽车车轮
  void buildPartA(); 
  //创建部件B 比如创建汽车方向盘
  void buildPartB(); 
  //创建部件C 比如创建汽车发动机
  void buildPartC(); 
  Product getResult(); //返回这个产品
} 

 然后就是建造者Director接口,建造者利用建造工具(builder)进行创建产品(construct方法)

public class Director {

  private Builder builder; 

  public Director( Builder builder ) { 
    this.builder = builder; 
  } 
  // 将部件partA partB partC最后组成复杂对象
  //这里是将车轮 方向盘和发动机组装成汽车的过程
  public void construct() { 
    builder.buildPartA();
    builder.buildPartB();
    builder.buildPartC(); 

  } 

} 

 

 

建造工具的具体建造方式:

public class ConcreteBuilder implements Builder { 

  Part partA, partB, partC; 
  public void buildPartA() {
    //这里是具体如何构建partA的代码

  }; 
  public void buildPartB() { 
    //这里是具体如何构建partB的代码
  }; 
   public void buildPartC() { 
    //这里是具体如何构建partB的代码
  }; 
   public Product getResult() { 
    //返回最后组装成品结果
  }; 

}
 

 

最后调用方式 如下:

ConcreteBuilder builder = new ConcreteBuilder(); //创建一个建造工具
Director director = new Director( builder ); //创建(建造者)并把建造工具拿给建造者

director.construct(); //建造者利用工具进行建造
Product product = builder.getResult(); //取得产品

 

以上方式还是蛮通俗的,哈哈,建造模式就到此为止吧

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值