1. 概述
建造者模式将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰,从而更精确控制复杂对象的生产过程;
通过隔离复杂对象的构建与使用,也就是将产品的创建与产品本身分离开来,使得同样的构建过程可以创建不同的对象;
并且每个具体创建者都相互独立,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象;
但建造者模式的缺陷是要求创建的产品具有较多的共同点、组成部分相似,如果产品之间的差异性很大,则不适合使用建造者模式。
同时,如果产品的内部变化复杂,可能会导致需要定义很多具体建造者者类来实现这种变化,导致系统变得很庞大。
2. UML图
- 抽象建造者 Builder: 相当于建筑蓝图,声明了创建 Product 对象的各个部件指定的接口;
- 具体建造者 ConcreteBuilder: 实现 Builder 抽象接口,构建和装配各个部件,定义并明确它所创建的过程,并提供一个检索产品的接口;
- 指挥者 Director: 构建一个使用 Builder 接口的对象。主要有两个作用:一是隔离用户与对象的生产过程;二是负责控制产品对象的生产过程;
- 产品角色 Product: 被构造的复杂对象。ConcreteBuilder 创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
3. 代码与测试
参考文献
[1] https://blog.csdn.net/a745233700/article/details/83625236