加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用枚举实现实用程序类和单例

发布时间:2020-12-14 05:37:17 所属栏目:Java 来源:网络整理
导读:Peter Lawrey在他的博客上写了关于 Two Uses of Enums that most people forget的内容. 首先,我没有忘记 – 我甚至没有意识到:) 这些方法简洁明了 – 与更传统的实现相同方法的方法相比,除了简洁之外还有什么好处,比如使用带有私有构造函数的final类来实现实
Peter Lawrey在他的博客上写了关于 Two Uses of Enums that most people forget的内容.

首先,我没有忘记 – 我甚至没有意识到:)

这些方法简洁明了 – 与更传统的实现相同方法的方法相比,除了简洁之外还有什么好处,比如使用带有私有构造函数的final类来实现实用程序类?

此外,是否有任何问题(除了令人困惑的程序员不期待它)?

解决方法

我真的不同意该帖子中第一次使用enum.如果您想要一个不可实例化的实用程序类,只需给它一个私有构造函数.就是这么简单,在我看到的那种情况下,枚举没有提供额外的好处.

在实用程序类中使用枚举用于单例是很好的,但我通常会尝试保持枚举被用作内部实现细节的事实.例如,参见Guava的Predicates类,它使用枚举来强制执行某些谓词的单个实例,例如alwaysTrue().但它不会向用户公开枚举.

至于其他好处:是的,还有其他好处,例如内置的可串行化,并且每个类加载器绝对强制执行枚举常量的单个实例,即使在反序列化时也是如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读