本章比较难于理解,需要反复仔细阅读和推断理解,也可以结合其他资料印证
1.简介
- 在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定
- 建造者模式就是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
- 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
- 建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式。
2.场景
1、需要生成的对象具有复杂的内部结构。
2、需要生成的对象内部属性本身相互依赖。
3.优缺点
优点:
1、建造者独立,易扩展。
2、便于控制细节风险。
缺点:
1、产品必须有共同点,范围有限制。
2、如内部变化复杂,会有很多的建造类。
4. 图片模型
![](https://img.haomeiwen.com/i15731841/cf744da1ee24676c.png)
5. 代码实现
1. 产品类
![](https://img.haomeiwen.com/i15731841/78affbea7e5e278f.png)
![](https://img.haomeiwen.com/i15731841/cb3b35b6fb39cda7.png)
2. 抽象建造者类
![](https://img.haomeiwen.com/i15731841/c3df0cbafb3e87d0.png)
3. 具体建造者类1
![](https://img.haomeiwen.com/i15731841/56e353963d967fee.png)
4. 具体建造者类2
![](https://img.haomeiwen.com/i15731841/d95a2d6bc07d7cbc.png)
5. 指挥者类
![](https://img.haomeiwen.com/i15731841/eeadad1e5a85ad21.png)
6. 客户端调用测试
![](https://img.haomeiwen.com/i15731841/d815677f1f82b9db.png)
![](https://img.haomeiwen.com/i15731841/d776960f7a2a0d8a.png)
网友评论