1.1.1 描述
l 正规描述
将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。
l 形象描述
当前好多企业应用软件系统都是需要定制的,每一个企业应用软件系统包含有多个部分,客户并不需要关心这些模块是如何组成一个软件系统,而只需要告知系统设计人员他们的需求就可以了,由设计人员(Director)和开发人员(builder)来构建(construct)出满足需求的产品。
1.1.2 类图&示意代码
public class Product(){ public void productMethod(){ System.out.println(“This is product”); } }
public abstract class Builder(){ public abstract void buildPart1(); public abstract void buildPart2(); public abstract Product retrieveProduct(); }
public class ConcreteBuilder extends Builder(){ private Product p = new Product();
public void buildPart1(){ //to do }
public void buildPart2(){ //to do }
public Product retrieveProduct(){ //to do return p; } }
public class Director(){ private Builder b = null;
public void construct(){ if(b = null){ b = new ConcreteBuilder(); } b.buildPart1(); b.buildPart2(); }
public void setBuilder(Builder builder){ this.b = builder; }
public Builder getBuilder(){ return b; } }
public class Client(){ public void main(String args[]){ Director d = new Director(); Builder b = new ConcreteBuilder(); d.setBuilder(b); d.construct(); Product p = b.retrieveProduct(); p.productMethod(); } } |
注:
1、这是普通的形式,还有好多变种