一、简介
1.定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
2.相关角色
Builder:生成器接口,定义创建Product所需各个部件方法的接口
ConcreteBuilder:具体生成器的实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法
Director:指导者,主要用来使用Builder接口,以一个统一的过程来创建所需要的Product对象
Product:产品,表示被生成器构建的复杂对象,包含多个部件
如果ConcreteBuilder只有创建对象功能,而没有组装的功能,个人感觉这里实现的生成器模式和抽象工厂模式没什么差别
3.何时使用?
- 如果创建对象的算法应该兜里于该对象的组成部分以及它们的装配方式时
- 如果一个构建过程有着不同的表示时
可以参考别人的博客:
查看...