建造者模式(builder)构建模式

定义
    将一个对象的复杂构建过程和表示分离开
含义
    就是将对象的复杂的构建过程分离开,已达到解耦过程和部件。
为何试用
    例如你需要加工手机,如果每个型号的手机都有一个加工组装厂,会不会感觉很多余呀。你只需要建造一个组装厂即可,安装的过程吗肯定都是一样的。所以你给我什么型号的手机部件我就给你组装什么型号的手机。这样将手机的组装和手机的部件有效的分离开减少耦合。而且有利于维护,比如说有一天手机天线不需要外置了,都已经内置了。那只要告诉组装厂减去装外置天线的哪一步就够了。

例子:

public interface Builder {

  //创建部件A 
  void buildPartA();
  //创建部件B
  void buildPartB();

  //返回最后组装成品结果
  //成品的组装过程不在这里进行,而是转移到下面的Director类中进行.
  //从而实现了解耦过程部件
  Product getResult();

}

public class Director {

  private Builder builder;

  public Director( Builder builder ) {
    this.builder = builder;
  }
  // 将部件partA partB最后组成复杂对象
  public void construct() {
    builder.buildPartA();
    builder.buildPartB();

  }

}

public class ConcreteBuilder implements Builder {

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

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

}

我们看看如何调用Builder模式:
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
director.construct();
Product product = builder.getResult();

posted on 2012-03-15 22:51 海峰 阅读(97) 评论(0)  编辑  收藏 所属分类: 设计模式


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜