[英]Static factory methods instead of constructors
在阅读了 Joshua Block 的 Effective Java 书,第 1 项,关于使用工厂 static 方法而不是构造函数后,我一直在研究这个问题。 在文本中,他尽可能为使用进行辩护,并在其他理由中引用了实施Singleton或享元标准的可能性。 它还引用了Boolean
class 的案例,它通过valueOf (boolean)
方法明智地使用了享元:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
我的问题是:我了解使用这些模式的优点,但无法在构造函数本身中实现? 单独使用它们并不能证明创建 static 工厂方法是合理的。
但无法在构造函数本身中实现?
否:根据规范, new
总是创建一个新实例(或失败),因此new Boolean(b)
总是返回一个Boolean
的新实例。
Boolean.valueOf
返回一个预先存在的实例。 这是可取的,因为只有两个可能的值,所以创建更多值根本没有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.