建造者模式
工厂模式 vs 建造者模式:
工厂模式用来创建不同但是相关类型的对象,由给定的参数来决定创建哪种类型的对象。
建造者模式用来创建一种类型的复杂对象,通过设置不同的可选参数,定制化地创建不同的对象。
如果一个类中有很多属性,为了避免构造函数的参数列表过长(影响代码的可读性和易用性),我们可以通过构造函数(必填属性,以强制创建对象的时候就设置)配合 set()
方法(非必填属性)来解决。但是如果存在以下任意一种情况,就可以考虑使用建造者模式了。
如果必填属性有很多,那此时构造函数就又会出现参数列表很长的问题。如果通过
set()
方法设置那些必填属性,那校验它们是否已经填写的逻辑就无处安放了如果类的属性之间有一定的依赖关系或者约束条件,若继续使用构造函数配合
set()
方法的设计思路,那这些依赖关系或约束条件的校验逻辑就无处安放了如果希望创建不可变对象(即对象在创建好之后,就不能再修改内部的属性值了),就不能在类中暴露
set()
方法,此时构造函数配合set()
方法来设置属性值的方式就不适用了
Last updated