首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

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

2012-11-09 
设计模式之略见一斑(建造模式builder)?建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需

设计模式之略见一斑(建造模式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(); //取得产品

?

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

?

1 楼 zqx888191 2010-08-14   很好,不错 跟你顶下
2 楼 bo_hai 2011-02-16   好。学习学习! 3 楼 j2eeli 2011-04-07   不错,简单易懂 4 楼 l7810 2012-02-23   这与模板模式有什么区别啊?

热点排行