《Effective Java》笔记 第二章

70 阅读1分钟

1.静态工厂替代构造器

公有构造器vs静态工厂(不是设计模式的工厂模式)

静态工厂可以保证每次被调用时不需要创建一个新对象,并且可以返回原返回类型的任何子类型对象。

同时可以在创建实例时不需要来纳许两次提供类型参数。

2.多个构造器参数时使用构造器

当使用重叠构造时

第一个构造器包含必要参数,第二个包含一个可选参数,第三个包含两个,以此类推。非常难读且难写

替代方法为JavaBeans模式,调用无参构造器来创建对象,然后调setter方法。但是这样可能会线程不安全。

好的方法为Builder模式,模拟具名的可选参数。主要适用于参数很多,且大多数参数都为可选参数。

image.png

3.用私有构造器或枚举类型实例只被实例一次的类

把构造器保持为私有,并导出公有的 final 静态成员。

image.png

或静态工厂

image.png

或枚举

image.png

4.私有构造器可以使得static类不被实例化

6.消除过期的对象引用

image.png

7.避免使用终结方法

finalizer不被保证即使执行,也不保证会被执行。

image.png