枚举公共接口
public interface IPairs<K, V, C extends Enum> {
    /**
     * 返回枚举对象
     * */
    C get();
    /**
     * 返回枚举项的 key
     * */
    K key();
    /**
     * 返回枚举项的 value
     * */
    V value();
}
状态枚举类
public enum StatusEnum implements IPairs<Integer, String, StatusEnum> {
    DISABLED(0, "record has been disabled"),
    ENABLED(1, "record has been enabled"),
    DELETES(9, "record has been deleted")
    ;
    private int code;
    private String desc;
    StatusEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    public StatusEnum get() {
        return this;
    }
    @Override
    public Integer key() {
        return this.code;
    }
    @Override
    public String value() {
        return this.desc;
    }
}
响应枚举类
public enum ResponseEnum implements IPairs<Integer, String, ResponseEnum> {
    SUCCESS(10000, "success"),
    FAILED(10001, "failed")
    ;
    private int code;
    private String desc;
    ResponseEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    public ResponseEnum get() {
        return this;
    }
    @Override
    public Integer key() {
        return this.code;
    }
    @Override
    public String value() {
        return this.desc;
    }
}
代码验证
public class AnswerApp {
    public static void main(String[] args) {
        invoke(StatusEnum.ENABLED);
        System.out.println();
        response(ResponseEnum.SUCCESS);
    }
    
    private static void response(IPairs pairs) {
        System.out.println(pairs.get() == ResponseEnum.SUCCESS);
        System.out.println(MessageFormat.format("key: {0}, value: {1}", pairs.key(), pairs.value()));
    }
    
    private static void invoke(IPairs pairs) {
        System.out.println(pairs.get() == StatusEnum.ENABLED);
        System.out.println(MessageFormat.format("key: {0}, value: {1}", pairs.key(), pairs.value()));
    }
}
程序运行结果
true
key: 1, value: record has been enabled
true
key: 10,000, value: success
结论: 项目中使用同一接口管理枚举类, 在方法参数中使用接口而不是用具体的枚举对象作为入参, 可以一定程度上降低程序的耦合性
                










