【发布时间】:2012-07-12 13:33:01
【问题描述】:
在问题What is an efficient way to implement a singleton pattern in Java? 中,获得最多支持的答案是使用枚举来实现单例。
很好,我理解这些论点,分别是语言优势。
然而,我有一组类,我定义了单例但需要扩展其他类,这对于枚举方法是不可能的,因为枚举不能子类化。
Joshua Bloch 在他的幻灯片中说:
- 但是缺少一件事——不能扩展枚举类型
- 在大多数情况下,您不应该
- 一个引人注目的用例 - 操作代码
在大多数情况下,您不应该:有人能详细说明一下吗?我已经实现了几个 servlet,它们扩展了HttpServlet,为什么这些不应该是单例?我的应用程序中只需要它们的一个实例。
【问题讨论】:
-
请你解释一下为什么你想要一个单例 servlet(导致这个选择的限制是什么)?
-
@Romski 应用程序只需要这个 servlet 的一个实例。
-
枚举可以实现接口。使用委托,这意味着您只有一个实例使用另一个类中定义的功能。
标签: java servlets enums singleton