为了接口而 偏爱 继承 和 编程上的 组合
。由于枚举是类(不是常规的,但仍然是类),因此您可以创建一些包含共享逻辑的字段,让枚举实现您的接口并将实现委派给该字段。
相关代码段:
共享界面
public interface MyInterface { void someMethod();}逻辑实现
public class MyInterfaceImpl implements MyInterface { public void someMethod() { System.out.println("Do smth..."); }}第一个枚举
public enum EnumA implements MyInterface { ; private MyInterface impl = new MyInterfaceImpl(); public void someMethod() { impl.someMethod(); }}第二枚举
public enum EnumB implements MyInterface { ; private MyInterface impl = new MyInterfaceImpl(); public void someMethod() { impl.someMethod(); }}请大家注意,
EnumA而
EnumB不是真正的重复代码,因为这是普通的委托(有效的,在我看来)。还请注意,使用接口可以将所有内容很好地粘合在一起。



