获取类的一个实例,最常用的方法是提供一个公有的构造器.
还有一种方法就是提供一个公有的静态工厂方法(static factory method): 一个返回类的实例的静态方法.
示例:
public static Boolean valueOf(boolean b){
return b ? Boolean.TURE : Boolean.FALSE;
}
相对于构造器,静态工厂方法的优势在于:
- 1. 它们有名称
- 2. 不必在每次调用它们的时候都创建一个新的对象
- 3. 可以返回类型的任何子类型的对象
- 4. 在创建参数化类型实例的时候,它们使代码变得更加简洁.
相对于构造器,静态工厂方法的缺点在于:
- 1. 类如果不含有public 或 protect 构造器, 就不能被继承
- 2. 它们与其他的静态方法实际上没有任何区别.