原则二:遇到多个构造器参数时考虑用建造者模式(构建器)
- 多个构造器参数的缺点:
- 产生多个构造器方法,随着参数的增加而增加
- 参数填写顺序错误难以检查,当多个参数的类型一样时容易写错
- 替代方案之一:JavaBean模式
- 大量的setter是分开调用,在构建过程中javabean可能处于不一致的状态,此时调用可能产生错误
- 无法对成员变量做成final
- 推荐方案:建造者模式
- 可避免填写顺序出错
- 不会出现不一致性问题
- 成员变量可final
- 可在build()调用时检查参数有效性,也可在setter时检查
- 可以自动填充某些域,如每次创建对象自动增加序列号
- 建造者模式的缺点:
- 每次创建实例都要先创建一个builder
- 总结:在使用构造器或者静态工厂方法时考虑建造者模式,衡量参数的个数,以及未来的拓展,如果参数较多、未来可能增加参数,那么使用建造者,后期维护容易些。