【java类的设计模式—02】建造者模式(Builder pattern)

来源:互联网 发布:php需要安装哪些软件 编辑:程序博客网 时间:2024/05/04 12:50

参考1:http://en.wikipedia.org/wiki/Builder_pattern

参考2:http://www.cnblogs.com/devinzhang/archive/2012/01/06/2314670.html

  建造者模式通过一个builder的对象对大量构造器一步一步执行并返回构造的结果。The intent of the Builder design pattern is toseparate the construction of a complex object from its representation. By doingso the same construction process can create different representations。结构如下:


Builder:创建大量对象的接口。

ConcreteBuilder:实现了Builder的类,返回最终的Product

Director:获得Builder并执行所有构造。

  下面以参考2中一个实例来说明:

public interface Builder {    void buildPartA();    void buildPartB();    void buildPartC();     ……    Product getResult();  }    //具体建造工具  public class ConcreteBuilder implements Builder {    Part partA, partB, partC;     public void buildPartA() {      //这里是具体如何构建partA的代码    };    public void buildPartB() {      //这里是具体如何构建partB的代码    };     public void buildPartC() {      //这里是具体如何构建partB的代码    };……     public Product getResult() {      //返回最后组装成品结果    };  }    //建造者  public class Director {    private Builder builder;      public Director( Builder builder ) {      this.builder = builder;    }    public void construct() {      builder.buildPartA();      builder.buildPartB();      builder.buildPartC();           ……    }}//Product的实例化依赖于Part的各种实例化  public interface Product { }public interfacePart { }


*******************************************************************************

下面是调用builder的方法:

  ConcreteBuilder builder = newConcreteBuilder()  Director director = new Director( builder );   director.construct();   Product product = builder.getResult();


*******************************************************************************

 这里面Director负责执行ConcreteBuilder的构建工作,优点是分离了构建过程。也可以让ConcreteBuilder自己执行这个构建过程,去掉Director,这是建造者模式的简化版本。

0 0
原创粉丝点击