一、概述
即Builder模式,或生成器模式。描述的是: 如何一步步构建复杂对象的过程,将内部复杂的校验逻辑隐藏起来,并将对象创建动作延迟到最后执行,保证复杂对象的完整性。
二、应用场景分析
三、优缺点
3.1 优点
- 任意组合构造器输入的参数,避免重载出现的问题
- 产品的建造和表示分离,实现了解耦
- 将复杂产品的创建步骤分解在不同的方法中,使创建过程更加清晰
- 具体的创建者类之间是相互独立的,有利于系统的扩展。符合开闭原则
3.2 缺点
- 增加重复代码。Builder对象和原对象属性完全相同,存在代码重复问题;
- 如果产品的内部比较复杂,需要定义很多的具体建造者来实现这种变化,导致系统很大。
四、与工厂模式的区别
工厂模式侧重于根据不同的参数,创建不同的对象,这个对象是相似的,或者属于同一类对象。构造者模式侧重于复杂对象的创建,可以定制化的注入不同的参数。
如图所示: