什么是建造者模式?
将一个复杂对象的构造与表示分离,使同样的构造过程可以创建出不同的表示。
建造者模式的流程
客户端负责创建指导者和具体建造者对象。然后,客户端把具体建造者对象给指导者,一声令下,指导者操纵建造者开始创建产品。当产品创建完成后,建造者把产品返还给客户端。
uml图以及角色分析
建造者(Builder)角色:定义创建一个Product对象所需的各个部件的操作
具体建造者(Concrete Builder)角色: 实现Builder角色提供的接口,一步一步完成创建产品实例的过程。 在建造过程完成后,提供产品的实例。
指导者(Director)角色:主要用来使用Builder接口,以一个统一的过程来构建所需要的Product对象
产品(Product)角色:产品便是建造中的复杂对象。
本质:
分离整体构建算法(产品表示)与部分构建算法
什么时候用建造者模式?
Product角色中有复杂的内部结构
Product角色属性之间相互依赖,建造者模式可以强迫生成顺序
在对象创建过程中会使用到一同中不易得到的一些其他对象
使用建造者模式的效果
优点:
隔离产品内部与表象,使之相互独立。
每一个Builder都相互独立
模式做建造的最终产品更易于控制