将一个复杂对象的构建和它的表示分离(即将复杂的构建过程分步简单化)。
如上例,TextConverter的子类对不同转换和不同格式进行特殊处理。
使用生成器的场景:
- 当构建复杂对象的算法相对独立于所创建的对象时。
- 当构建过程允许被构建对象有不同的表示时。
具体的参与者:
- Director(导向器):根据不同的情况导向至Builder中不同的算法。
- Builder:指定一个Product对象各个部件的抽象接口
- ConcreteBuilder:Builder的实例。
协作过程:
注意:根据需要创建ConcreteBuilder对象,并根据不同的ConcreteBuilder创建不同的Director对象