建造者模式(链式编程)
1.定义
指将一个复杂对象的构造与它的表示分离,使同样的构建过程 可以创建不同的表示
2.组成
- 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个组成部件
- 抽象建造者(Builder):引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。
- 具体建造者(Concrete Builder):该角色实现抽象建造者中定义的所有方法,并且返回一个组件好的产品实例。
- 指挥者(Director):负责调用适当的建造者来组建产品,该类一般不与产品类发生依赖关系,与该类直接交互的是抽象建造者类。一般来说,指挥类被用来封装程序中易变的部分。
3.结构图
4.优缺点
优点:
①各具体的建造者相互独立,有利于系统的扩展。
②客户端不必知道产品内部组成的细节,便于控制细节风险。
③封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和具体建造者类是比较稳定的,因此,将主要的业务逻辑封装在导演类中对整体而言可以取