GOF—Builder模式
Builder模式
如同建造一个大楼,需要先打牢第几,搭建框架,然后自下而上地一层一层盖起来。通常在建造具有复杂结构的物体时,我们需要首先建造组成这个物体的各个部分,然后分阶段将他们组装起来
Builder模式中的登场角色
Builder(建造者)
Builder角色负责定义用于生成实例的接口(API)。Builder角色中准备了用于生成实例的方法
ConcreteBuilder(具体的建造者)
ConcreteBuilder角色是负责实现Builder角色的接口的类(API)。这里定义了在生成实例时实现被调用的方法,此外,在ConcreteBuilder角色中还定义了获取最终生成结果的方法。
Director(监工)
Director角色负责使用Builder角色的接口(API)来生成实例。他并不依赖于oncreteBuilder角色。为了确保不论ConcreteBuilder角色是如何被定义的,Director角色都能正常工作,它只调用在Builder角色中被定义的方法。
Client(使用者)
挂角色使用了Builder模式,Builder模式并不包含Client角色。