建造模式(Build Pattern) , 是用来构造复杂对象的,通常应用于无法轻易构造完成一个完整对象的时候,而在不完整的状态之下,该对象是无法被有效使用的。
一个很容易理解的例子是电子邮件系统,一般包括收件人,发件人,主题,内容,附件等部分,在发件人被赋值之前,实际上该电子邮件系统是无法正常工作的,这就是建造模式最佳的使用场景。
建造模式通常有一个导演类,一个抽象建造类,一个具体实现类,一个产品类组成,代码示例如下:
class Direcot{
Builder builder;
public Product contruct(){
return buildr.buildPart1().buildPart2().build();
}
}
interface Builder{
Builder buildPart1();
Builder buildPart2();
Product build();
}
class ConcreteBuilder implements Builder{
private Product product = new Product();
Builder buildPart1(){}
Builder buildPart2(){}
Product build(){
return product;
}
}
class Product{
}
java源码中,StringBuilder就是一个极好的学习的例子。