繁体   English   中英

Static 工厂方法代替构造函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM