我有两个枚举,两个包.我可以有1000个枚举,1000个包,因为我正在开发一种“单元”架构,每个单元都必须有自己的枚举.
我不想让同一个枚举中的每个常量最大化凝聚力.
问题是每个枚举基本相同,常量除外(适用于每个单位)
所以,我需要重复很多代码,我不想这样做(我的枚举实现了监听器,方法逻辑是每个枚举中的复制/粘贴,例如).
我查看了互联网上的枚举扩展模式.我找到了可扩展的枚举模式.
这不完全是我需要的.
我试图找到一个解决方案来保持我的常量在不同的包中,以不同的单位,但我想要一种抽象类,在我的枚举可以扩展的包层次结构的顶部.这样,我只能编写一次方法逻辑.
我知道枚举不能扩展类,它们只能实现接口.
这是我想要做的UML草图:
我怎样才能做到这一点?有模式吗?
几个枚举如何扩展包含用于这些枚举的方法的类? (可重复使用的)
编辑提示:
我需要使用枚举中的.values(),因为我需要使用常量进行迭代.
解决方法:
查看Effective Java一书中的“Typesafe Enum”模式.你可以在这里阅读
http://java.sun.com/developer/Books/effectivejava/Chapter5.pdf