Effective java之创建和销毁对象
名词解释
构造器(Constructor ):构造器作为一种方法,使用 new 关键字实现对象的创建。负责类中成员变量(域)的初始化。 就是类中的构造函数。最大的用处就是在创建对象时执行初始化。
静态工厂方法(Static factory method):用一个静态方法来对外提供自身实例的方法,例如,Boolean.FALSE。
创建对象方法
1、静态工厂方法代替构造器
代码:
//使用构造器
Boolean b1 = new Boolean(true);
//使用静态工厂方法
Boolean b2 = Boolean.valueOf(true);
对比:
1)构造器
一个类只能带有一个指定签名的构造器。要实现多个功能,就需要创建多个类。
它容易受到参数的形象,例如参数类型顺序是不能改变的,不便于用户长久使用。
2) 静态工厂
使用条件:当一个类它需要多个带有相同签名的构造器。
取不同的名字以表示不同的构造方式。
可以根据功能来取名字,对于代码的编写和阅读都能够更清晰。
3)优势
有独立的名称,如valueOf
不需要在每次调用时都创建一个新的对象
[Java的单例(Singleton)](https://www.jianshu.com/p/eb30a388c5fc)
它们可以返回原返回类型的任何子类型的对象
2、构建器来处理多个构造器参数
3、用私有的构造器或者枚举类型强化Singleton属性
4、通过私有构造器强化不可实例化的能力
5、避免创建不必要的对象
6、消除过期的对象引用
7、避免使用终结方法