一、建造者模式的定义
建造者模式(Builder Pattern)是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
补充:建造者模式属于创建型模式,用户只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解。
二、建造者模式的适用场景
- 适用于创建对象需要很多步骤,但是步骤的顺序不一定固定
- 如果一个对象有非常复杂的内部结构,很多属性,可以把复杂对象的创建和使用分离。
- 常用的类有JDK里的StringBuilder、Spring内BeanDefinitionBuilder、mybatis里CacheBuilder、SqlSessionFactoryBuilder。
链式编程
在建造者模式中,有一种大量运用的编程方法,那就是链式编程。链式编程的核心点在于
- 方法返回值为对象。
- 返回this。
public CourseBuilder {
private String name;
/*
* return this 后就可以无限.....编程了
*/
public CourseBuilder addName(String name) {
course.setName(name);
return this;
}
}
总结
建造者模式的优点
- 封装性好,创建和使用分离
- 扩展性好,建造类之间独立、一定程度上解耦
建造者模式的缺点
- 产生多余的Builder对象
- 产品内部发生变化,建造者都要修改,成本较大。