【发布时间】:2010-10-07 02:51:42
【问题描述】:
Java 中的枚举常量设计为单例,为了并发使用,我通常创建无状态枚举实例并使用方法参数根据需要注入数据。
例子:
目前我正在创建一个具有操作的 REST 服务(使用策略模式的变体实现为枚举)。
public enum Operation {
DO_THIS() {
public Result doSomething(Object theData) {
}
} ,
// Other Operations go here
;
public abstract Result doSomething(Object theData);
}
现在我想收集有关操作被调用的频率以及成功的频率等数据。
我可以在使用枚举实例时将状态保存在外部,但似乎状态应该保存在操作中,因为操作应该包含它自己的状态。
现在我的一般问题是:
有状态的枚举实例(除了并发问题)是一个糟糕的设计吗?
【问题讨论】:
-
毫无疑问,是的。