-
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
-
说明:用户只需要指定需要构造的类型就可以得到它们,建造过程及细节不需要知道.当创造一个对象需要很多步骤时,适用建造者模式;当需要一个简单的方法来创建简单的对象时,适用于工厂模式
-
类型:创建型
-
适用场景:
- 如果一个对象有非常复杂的内部结构(很多属性)
- 想把复杂对象的创建和使用分离
-
优点:
- 封装性好,创建和使用分离
- 扩展性好,建造类之间独立,一定程度上解耦
-
缺点:
- 产生了多余的Builder对象
- 产品内部发生变化,建造者也要修改,成本较大
-
与工厂模式的区别:
- 建造者模式更注重于方法的调用顺序,而工厂模式注重于创建产品(对象)
- 创建对象的粒度不同,建造者模式可以创建一些复杂的产品(对象),由各种的复杂构建组成;工厂模式创建出来的对象都相同
- 创建对象的顺序不同,建造者模式可以创建一些复杂的产品(对象),由各种的复杂构建组成;工厂模式创建出来的对象都相同
-
注:在mybatis中也使用了建造者模式,在建造者模式中使用了建造者模式,主要目的也是为了独立和解耦
网友评论