生成器
简介
意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性
-
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
-
当构造过程必须允许被构造的对象有不同的表示时
结构
参与者
-
Builder 为创建一个Product对象的各个部件指定抽象接口
-
ConcreteBuilder 实现builder的几口以构造和装备该产品的各个部件 定义并明确它所创建的标示 提供一个检索产品的接口
-
Dirctor 构造一个使用Builder几口的对象
-
Product 表示被构造的复杂对象。 ConcreteBuilder创建该产品的内部标示并定义它的装配过程。 包含定义组成部分的类,包括将这些部件装配成最终产品的接口
效果
-
可以改变一个产品的内部表示
-
构造代码和表示代码分开
-
对构造过程进行更精细的控制
案例
实现