目录
1、建造者模式
它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。目的是通过组装零配件而产生一个新产品。
- 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。
- 用户使用不同的具体建造者即可得到不同的产品对象 。
- 增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合 “开闭原则”。
2、建造者模式主要包含四个角色
2.1 Product(产品角色)
一个具体的产品对象,包含产品的各个组成部分 (创建零件并进行 setter 初始化)。
2.2 Builder(抽象建造者)
创建一个 Product 对象的各个部件指定的抽象接口。( 指定各个零件的抽象加工方法,并且返回加工后的零件 )
2.3 ConcreteBuilder(具体建造者)
实现抽象接口,构建和装配各个部件。==(实现零件的加工方法) ==
2.4 Director(指挥者)
构建一个使用 Builder 接口的对象。它主要是用于创建一个复杂的对象。( 调用 Builder 的零件加工方法来进行产品组装,获取返回组装后的对象)
它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。
2.5 测试使用步骤
- 获取 ConcreteBuilder 对象实例
- 获取 Director 实例(传入 ConcreteBuilder 对象实例)
- 使用 Director 的 生产方法获取组装后的产品对象