Это вопрос дизайна. Конструкция является псевдокодом и представляет собой небольшой пример, но я могу добавить намного больше методов, данных, логики в будущем.
В этом примере я рассматриваю два подхода. В приведенном ниже методе execute я должен вернуть неизменный объект «data / bean / model» с выводом метода execute или обновить состояние класса BusinessLogic.
Оба выполняют одну и ту же цель, я хочу получить результат выполнения, и либо данные должны содержаться в контейнере компонента или внутри класса BusinessLogic.
Я предпочитаю иметь класс BusinessLogic, потому что SomeObject - это бесполезный бин, который ничего не делает.
Что ты думаешь?
public class SomeObject {
private String data1;
private String data2;
}
public class BusinessLogic {
private final IWebObject webObject;
/* String data1; String data2 */
public BusinessLogic(final IWebObject webObject) {
this.webObject = webObject;
}
// Approach 1
public SomeObject execute() {
return new SomeObject();
}
or
...
...
// Approach 2
public void execute() {
// Do something
this.data1 = "data1";
this.data2 = "data2";
}
public String getData1() { }
public String getData2() { }
} // End of the Class //
Моя единственная проблема с подходом 2 состоит в том, что data1 и data2 не будут неизменными, поэтому. Я могу вызвать выполнить произвольно и изменить эти значения.