在处理Java枚举时,我对代码重用的最佳设计模式有疑问.基本上,我想要实现的是能够定义几个模拟静态业务集合(常量集)的枚举,但我也想用最少的编码来共享它们之间的行为.
通过抽象类的类继承来实现这是微不足道的,但是,由于Java枚举无法扩展(它们只能实现接口),这种类型的工作很繁琐,并且涉及很多容易出错的复制/粘贴工作(从枚举中复制代码)枚举).应在所有枚举之间共享的"业务逻辑"示例包括从/转换为字符串,实例和逻辑比较等.
我现在最好的方法是将helper类与业务接口结合使用,但这只能降低代码复杂性(因为所有枚举仍然必须声明并调用辅助类).参见示例(只是为了澄清):
public enum MyEnum {
A, B, C;
// Just about any method fits the description - equals() is a mere example
public boolean equals(MyEnum that) {
ObjectUtils.equals(this, that);
}
}
Run Code Online (Sandbox Code Playgroud)
StackOverflowers如何处理这种"语言功能"?
归档时间: |
|
查看次数: |
4060 次 |
最近记录: |