我的代码开始失控,所以我想我会寻求帮助。
我有一个实现接口的枚举类。该方法所做的第一件事是使用jndi从池中获取数据库连接。然后基于对象属性执行一系列计算并返回结果。
public interace MyInterface {
public ResultObject calculate(MyObject myObject);
}
public enum MyEnum implements Myinterface {
public ResultObject calculate(MyObject myObject) {
//several steps
}
}
只用一次计算就可以正常工作。我现在有更多的计算方法,每次计算只需要进行一些更改。
模板方法设计模式听起来很完美,但我对如何使用我目前的枚举实现感到困惑?我不想在我的枚举计算方法中添加一堆分支语句,并且难以维护。
我正在使用spring mvc,我为每个扩展基类的计算都有一个控制器。我在每个控制器中调用super.calculate(),我想保持相同。
有没有人对此场景有任何建议?我觉得当我开始设计时很好,但现在我不太确定。
答案 0 :(得分:3)
我觉得很难让你有enum
来实现这样的界面,特别是如果enum
负责与数据库交互 - 听起来你可能会误用{{1} }}秒。
至于实际问题,我会创建一个基类(可能是抽象的),它包含enum
方法的核心逻辑,并委托“其他方法”来计算抽象方法或受保护方法可以通过子类覆盖,以便您可以使用稍微不同的calculate(MyObject)
实现来提供不同的行为。