动机:在软件系统中,有时候面临复杂对象的创建,这种复杂对象通常是由各个部分的子对象通过一定的算法构成;由于需求的变化,那么复杂对象的各个部分通常面临剧烈的变化,但是将他们组合在一起的算法确实稳定的。
如何处理这种复杂的变化?就是创建一种“封装机制”,来隔离复杂对象各个部分的变化,从而保持系统中“稳定构建算法”不随需求的改变而改变。
建造者模式的四个角色
1 product(产品角色):一个具体的产品对象
2 builder (抽象建造者):创建一个Product对象的各个部件的指定接口
3 ConcreteBuilder(具体建造者)实现接口,构建和装配各个部件
4 Director (指挥者) 构建一个使用Builder
我们以建房子为例
产品对象 House
抽象的建造流程
HouseBuilder
具体建造那种类型的房子
建造高楼:
HighHouseBuilder
建造普通房子:
CommonHouseBuilder
接下来要有指挥者,只会如何进行建造,建造什么样的房
Director
传入HouseBuilder的方法可以多种,名字自己起。
在主方法里面进行测试
设计模式:
任何设计模式核心理念就是代码的解耦。