生成器(Builder):将一个复杂对象的构建与它的表示分离,使得同样的创建过程可以场景不同的表示。
Builder:创建Product对象的各个部件的抽象接口;
ConcreteBuilder:实现Builder的接口,创建Product的各个部件;
Product:创建的产品;
Director:指导Builder的创建过程;
适用范围:
(1)当对象零件的创建与零件之间的组合方式是相互独立的时;
(2)当构建过程必须要求被构建的对象有不同表现时;
优点:
(1)它使你可以改变一个产品的内部表示;
(2)它将构造代码和表现代码分开;
(3)它使你可以对构造过程进行更精细的控制;
(4)builder独立,容易扩展;
缺点:
其他:
由于生成的产品区别较大,因此Product不需要抽象类;