今天的博客主题
设计模式 ——》 设计模式之建造者模式
建造者模式 BP (Builder Pattern)
定义
建造者模式是将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以构建不同的表示
使用建造者模式对用户来说只需要指定需要的建造的类型就可以获得对象,创建过程与细节不需要了解。从而可以达到在用户不用了解底层的代码就可以创建出一个复杂的对象。
建造者适用于创建对象需要很多步骤,但是步骤的顺序不一定固定,如果一个对象有非常复杂的内部结构(属性),可以将对象的创建和使用进行分离。
应用场景
1)需要创建的对象具有复杂的内部结构。
2)需要创建的对象内部属性本身相互依赖。
3)相同的方法,不同的执行顺序,产生不同的结果。
4)内部结构多个属性,都可以装配到一个对象,但产生的结果又不同。
5)初始化一个对象特别复杂,参数多,参数还有默认值。
就是说由于需求的变化,对象的内部结构也随之变化,但是对象的组合方式却是稳定的。
选择权交给客户端,想选用哪个选用哪个
优点
1)封装性好,创建和使用分离。
2)建造者独立,易扩展,一定程度上解耦。
3)
缺点
1)产生多余的 builder 对象。
2)产品内部发生改变,建造者也要改,修改成本大。