如果要构造一个组成部件很多的对象,即所谓的aggregate,可能要使用Director - Builder模式。
Director也叫Reader或Parser,负责解析输入,然后调用Builder相应的函数来构造对象相应的部件。
Builder模式的特征是,在构造对象时,一步步逐渐完成,而不是用一个函数一下子实现。
把整个构造过程抽象出N步,是为了让每一个步骤有多种实现方式。这样,最后构造出来的对象就会有多种表现形式。
所以,Builder模式适用的场合是:一种输入,多种可能的输出。
客户需要创建Reader和Builder各一个,然后把二者耦合在一起。给Reader输入,让其启动construct动作,最后找Builder得到具体的输出。