我直接说使用背景,在涉及到跟第三方的交互中,网络状态、数据状态/类型等等都是半固定的,可以用常量,也可以用变量,还可以用枚举类型,个人感觉枚举是维护起来最轻松,也对系统影响最小的。
比如以下的例子,用来定义对第三方资源的操作:
public enum Operate {
QUERY(xxx,xxx);
DELETE(xxx,xxx, xxx);
...
private final String operateName;
private final int operateState;
private final String operateInfo;
IntentOperate(String operateName, int operateState, String operateInfo) {
this.operateName= operateName;
this.operateState = operateState;
this.operateInfo= operateInfo;
}
}
假设现在对第三方资源的处理是定制化的,不是统一的,可以这样处理,用继承关系,把共同的方法放到父类,在子类添加枚举即可:
private static final EnumMap<OperateType, Set<Operate>> ENUM_MAP = new EnumMap<>(OperateType.class);
static {
ENUM_MAP.put(OperateType.use, Sets.newHashSet( Operate.QUERY...)
);
}
然后就可以根据定制的OperateType区分操作