对于类而言,为了让客户端获取它自己的一个实例,最常用的方法就是提供一个公有的构造器。还有一种方法,它应该在每个程序员的工具箱中占有一席之地。类可以提供公有的静态工厂方法,它只是一个返回类的实例的静态方法。如:
public static Boolean valueOf(boolean b){
return b ? Boolean.TRUE : Boolean.FALSE;
}
静态工厂方法与构造器相比的优点:
1.它们有名称
2.不必在每次调用它们的时候都创建一个新对象
3.它们可以返回原返回类型的任何子类型的对象
4.在创建参数化类型实例的时候,它们使代码变得更加简洁
静态工厂方法的缺点:
1.类如果不含公有的或者受保护的构造器,就不能被子类化
2.它们与其他的静态方法实际上没有任何区别