标签:建造者模式
参考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,这是建造者模式的简化版本。
【java类的设计模式—02】建造者模式(Builder pattern)
标签:建造者模式
原文地址:http://blog.csdn.net/brillianteagle/article/details/39135713