Мой код начинает выходить из-под контроля, поэтому я решил обратиться за помощью.
У меня есть класс enum, который реализует интерфейс. Первое, что делает метод, это получает соединение с БД из пула, используя jndi. Затем на основе свойств объектов выполняет серию вычислений и возвращает результат.
public interace MyInterface {
public ResultObject calculate(MyObject myObject);
}
public enum MyEnum implements Myinterface {
public ResultObject calculate(MyObject myObject) {
//several steps
}
}
Это работало нормально только с одним расчетом. Теперь у меня есть еще несколько способов расчета с несколькими изменениями, необходимыми для каждого расчета.
Шаблон разработки метода шаблона звучит идеально для этого, но я не понимаю, как мне заставить его работать с реализацией enum, которая у меня есть в настоящее время? Я не хочу добавлять кучу операторов ветвления в мой метод вычисления enum и усложнять его поддержку.
Я использую Spring MVC, и у меня есть контроллер для каждого расчета, который расширяет базовый класс. Я вызываю super.calculate () на каждом контроллере, и я хотел бы оставить это неизменным.
У кого-нибудь есть предложения по этому сценарию? Я чувствовал, что когда я начинал, дизайн был хорошим, но теперь я не уверен.