一、定义
建造者模式又叫生成器模式,将一个复杂对象的构建与它的表示分离(即产品与产品的创建过程解耦),使得同样的构建过程可以创建不同的表示。
二、类图
![](https://i-blog.csdnimg.cn/blog_migrate/7d329ee0e5be2f7ed6beaa4815d9397e.png)
Product(产品角色):一个具体的产品对象
Builder(抽象建造者):创建一个Product对象的各个部件制定的接口、抽象类
ConcreteBuilder(具体建造者):实现接口,构建和装配各个部件。
Director(指挥者):构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。
三、优点
- 客户端(使用程序)不必知道产品内部组成的细节,将产品本身与产品的构建过程解耦,使得相同的创建过程可以创建不同的产品对象
- 每一个具体建造者都是相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或者增加新的具