建造者模式 源自于复杂对象的构造过程,比如我们要建造一座房子,或者建造一辆车,Builder模式包含的角色包括:
Director(Designer):指导者(或者 设计者)
Builder:建造者
Product:产品
这里我们不再强调产品的概念,以房子为例来解析Builder模式的过程:
1)指导者Director 提供宏观概念(调用Construct方法),但他不需要知道具体的建造过程,只需要知道要建造一个房子就行了;
2)建造者Builder 根据Director的宏观指导,提供关键的建造步骤,调用:
建造地基 -> BuildPart1()
建造墙面 -> BuildPart2()
建造房顶 -> BuildPart3()
建造窗户 -> BuildPart4()
……
3)具体建造者ConcreteBuilder 通过继承实现不同的建造样式,比如 建造窗户 可能分为 中式窗户、欧式窗户、美式窗户 等等,则在这里面加以区别。
相信本节应该不需要代码示例,关于Builder模式的核心在于 建造过程的拆解,也是宏观到具体的划分,理解了这个过程就能够发现,原来Builder模式很简单。