为了账号安全,请及时绑定邮箱和手机立即绑定

静态工厂方法而不是构造函数

静态工厂方法而不是构造函数

墨色风雨 2023-12-13 10:45:15
在阅读 Joshua Block 的《Effective Java Book》第 1 项关于使用工厂静态方法而不是构造函数之后,我一直在研究这个问题。在文本中,他尽可能地为这种使用辩护,并列举了实施Singleton或Flyweight标准的可能性以及其他理由。它还引用了该类的案例Boolean,该类通过以下方法明智地使用了FlyweightvalueOf (boolean):public static Boolean valueOf(boolean b) {     return b ? Boolean.TRUE : Boolean.FALSE; }我的问题是:我了解使用这些模式的优点,但无法在构造函数本身中实现?单独使用它们并不能证明创建静态工厂方法是合理的。
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

但不能在构造函数本身中实现?

否:new根据规范,总是创建一个新实例(或失败),因此new Boolean(b)总是返回一个新实例Boolean

Boolean.valueOf返回一个预先存在的实例。这是可取的,因为只有两个可能的值,因此没有必要创建更多值。


查看完整回答
反对 回复 2023-12-13
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信