设计模式学习——建造者模式(生成器模式)2016-02-27所有配套代码均在github上:https://github.com/ZHONGHuanGit/DesignPattern
简介:建造者模式也叫做生成器模式,定义为:封装一个产品的构造过程,并且按此步骤构造。建造者模式(生成器模式)属于创建类模式,和工厂模式相比,你会觉得有点类似,但是有区别之处。不过,建议在看下去之前,得明白三个工厂模式,如果你记得不太清楚了,可以看这里,简单工厂,工厂方法,抽象工厂。
UML类图:看一下uml类图。这一部分,如果不清楚,可以先看下面的场景部分,再回过头来看。

从上面的类图中,可以看到有四个要素。1
AbstractBuilder(抽象建造者):引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般会有两部分抽象方法,一部分用来建造产品,一个是用来返回产品。如上面,buildPart1和buildPart2用来构造产品,retrieveResult返回产品。2
ConcreteBuilder(具体建造者):实现抽象建造者的抽象方法,之所以这样,是为了便于不同情况下的扩充。3
Director(导演者):负责调用适当的建造者来组建产品,导演类一般不与产品类发生依赖关系,与导演类直接交互的是建造者类。一般来说,导演类被用来封装程序中易变的部分。4
Product(产品类):一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。