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

被折叠的 条评论
为什么被折叠?



