@Slf4j
public enum StrategyEnum {
//相当于各个不同的策略实现类
STRATEGY_A {
public BigDecimal exec(BigDecimal a, BigDecimal b) {
return a.add(b);
}
},
//相当于各个不同的策略实现类
STRATEGY_B {
public BigDecimal exec(BigDecimal a, BigDecimal b) {
return a.add(b);
}
};
//相当于定义策略接口
abstract BigDecimal exec(BigDecimal a,BigDecimal b);
public static void main(String[] args) {
BigDecimal bigDecimal = STRATEGY_A.exec(BigDecimal.ONE, BigDecimal.TEN);
double v = bigDecimal.intValue();
log.info(bigDecimal.toString());
}
}
- 个人感觉只使用于简单的策略实现中,如果计算逻辑较为复杂,无论是通过调用新的实现类来计算,还是直接在枚举中实现都不是很合适,枚举类中写业务也是挺奇葩的。