几个枚举如何扩展包含Java中这些枚举所用方法的类?

时间:2012-06-21 20:00:02

标签: java design-patterns enums extends

我有两个枚举,两个包。我可以有1000个枚举,1000个包,因为我正在开发一种“单元”架构,每个单元都必须有自己的枚举。

我不想让同一个枚举中的每个常量最大化凝聚力。

问题是每个枚举基本相同,除了常量(适用于每个单位)

所以,我需要重复很多代码,我不想这样做(我的枚举实现了侦听器,并且方法逻辑是每个枚举中的复制/粘贴,例如)。

我查看了互联网上的枚举扩展模式。我找到了可扩展的枚举模式。

这不完全是我需要的。

我试图找到一个解决方案,将我的常量保存在不同的包中,以不同的单位,但我想要一种抽象类,在我的枚举可以扩展的包层次结构的顶部。这样,我只能写一次方法逻辑。

我知道枚举不能扩展类,它们只能实现接口。

这是我想要做的UML草图:

enter image description here

我该怎么做?有模式吗?

几个枚举如何扩展包含用于这些枚举的方法的类? (可重复使用的)

修改提示

我需要使用枚举中的.values(),因为我需要使用常量进行迭代。

2 个答案:

答案 0 :(得分:4)

从Effective Java书籍中查看“Typesafe Enum”模式。您可以在

阅读相关内容

http://java.sun.com/developer/Books/effectivejava/Chapter5.pdf

答案 1 :(得分:1)

你不能用枚举扩展一个类 - 或一个枚举。但是您可以实现接口并将接口方法的实现委托给辅助类。