建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
它关注如何一步一步创建一个的复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独立,增加新的建造者非常方便,无须修改已有代码,系统具有较好的扩展性。
建造者模式包括四个角色:
- 产品类(Product):它是被构建的复杂对象,包含多个组成部件,具体建造者 ConcreteBuilder 创建该产品。
-
抽象建造者(Builder):引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。
这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品buildPartA()
,一个是用来返回产品Product getProduct()
。 -
建造者(ConcreteBuilder):实现具体的创建任务,具体来说一般是两项任务:组建产品
buildPartA()
;返回组建好的产品Product getProduct()
。 - 导演类(Director):负责调用适当的建造者 Builder 来组建产品,导演类一般不与产品类发生依赖关系,与导演类直接交互的是建造者类。
类图如下:
建造者模式 Builder
引用:
建造者模式