image-20200723153753538.png
    将一个复杂对象的构建和它的表示分离(即将复杂的构建过程分步简单化)。

    如上例,TextConverter的子类对不同转换和不同格式进行特殊处理。

    使用生成器的场景:

    • 当构建复杂对象的算法相对独立于所创建的对象时。
    • 当构建过程允许被构建对象有不同的表示时。

    具体的参与者:
    image-20200723155921281.png

    • Director(导向器):根据不同的情况导向至Builder中不同的算法。
    • Builder:指定一个Product对象各个部件的抽象接口
    • ConcreteBuilder:Builder的实例。

    协作过程:
    image-20200723160624799.png

    注意:根据需要创建ConcreteBuilder对象,并根据不同的ConcreteBuilder创建不同的Director对象