定义(建造者模式、builder模式)
将一个复杂对象的创建和配置进行分离。调用组件负责提供配置对象的数据,并负责将配置数据传递给中间人,即建造者。而建造者则代表调用组件创建对象。如此分离之后,调用组件就无需过多掌握其所使用的对象的信息,将默认配置信息集中放在建造者类中即可,而不用将这些信息散布于每一个需要创建对象的调用组件中。创建时所配置的参数不一样,生产出的具体产品也将不一样。
使用场景
如果创建对象需要进行复杂的配置,而你又不让默认配置在整个应用中传播,即可使用此模式。
场景一:相同方法,不同的调用顺序,不同的初始化参数,生产出的产品将不一样。
场景二:多个部件,都可以组装在一个对象上,但是产生的结果不一样
场景三:当一个类非常复杂的时候,并且进行初始化默认的参数(网络请求)
角色划分
角色一:具体产品Computer(核心)
角色二:抽象构建者ComputerBuilder,定义构建对象对应的接口。
角色三:具体构建者ConcreteBuilder,实现角色二的接口。
角色四:统一组装类Director,确定产品构建过程中角色二对应接口的步骤,防止步骤遗落或者顺序错乱。
(客户端调用具体构建者配置不同的参数。然后由统一组装类进行组装,构建出具体的产品)
UML图
案例
-
角色一:具体产品
-
角色二:抽象构建者
-
角色三:具体构建者(可以有多个)
-
角色四:组装者
-
客户端调用调用:
总结
- 必须提供组装者角色,因为组装者角色内部会确定构造零部件的步骤和相应顺序。
- 该设计模式是符合依赖倒置原则的。