《Effective》
About 1 minbook
第一章 创建和销毁对象
1.1 用静态工厂方法代替构造器
BigInteger prime = BigInteger.valueof(Integer.MAX_VALUE);
优点:
- 静态工厂方法有名称
- 不用每次调用都new新的类
- 可以返回子类型对象
- 可以用参数控制返回不同的类
- 可以编写返回一个不存在的类
缺点:
- 不容易查明类是如何被实例化的
- 如果没有共有或受保护的构造器就不能被子类化
1.2 遇到多个构造器参数时要考虑使用构建器
优点:
多参数构造器的客户端代码很难阅读和编写
get/set方式赋值让类不可变变得不复存在
Builder模式适用于类层次结构
Builder模拟了具名的可选参数
缺点:
必须先创建构造器,在某些十分注重性能的情况下可能会有问题
比重叠构造器模式更冗长