模式"/>
(8)设计模式
文章目录
- 1. 定义
- 2. 类图
- 3. 建造者模式使用场景
- 4. 工厂模式和建造者模式区别
1. 定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
英文为 Builder 模式,中文翻译为 建造者模式 或者 构建者模式,也有人叫它 生成器模式。
2. 类图
3. 建造者模式使用场景
- 把类的必填属性放到构造函数中,强制创建对象的时候就设置。如果必填的属性有很多,把这些必填属性都放到构造函数中设置,那构造函数就又会出现参数列表很长的问题。如果把必填属性通过 set() 方法设置,那校验这些必填属性是否已经填写的逻辑就无处安放了。
- 如果类的属性之间有一定的依赖关系或者约束条件,继续使用构造函数配合 set() 方法的设计思路,那这些依赖关系或约束条件的校验逻辑就无处安放了。
- 如果希望创建不可变对象,也就是说,对象在创建好之后,就不能再修改内部的属性值,要实现这个功能,就不能在类中暴露 set() 方法。构造函数配合 set() 方法来设置属性值的方式就不适用了。
4. 工厂模式和建造者模式区别
工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,可以通过设置不同的可选参数,“定制化”地创建不同的对象。
使用建造者模式创建对象,还能避免对象存在无效状态。
更多推荐
(8)设计模式
发布评论