Поместить бизнес-логику в Java Beans? - PullRequest
5 голосов
/ 22 марта 2010

Я читал эту страницу и нашел следующее утверждение:

MVC на страницах Java Server

Теперь, когда у нас есть удобный архитектура, чтобы отделить мнение, как мы можем использовать это? Java сервер Pages (JSP) становится интереснее потому что содержание HTML может быть отделены от бизнеса Java объекты. JSP также может использовать Java Фасоль. Бизнес-логика может быть размещена внутри Java Beans. Если дизайн спроектирован правильно, веб Дизайнер может работать с HTML на JSP сайт, не мешая Java-разработчик.

Интересно, что в своем учебнике я вытащил следующую цитату:

В архитектуре MVC ... исходный запрос всегда обрабатывается сервлет. Сервлет вызывает бизнес-логику и код доступа к данным и создает компоненты для представления результатов (это модель). Затем сервлет решает, какая страница сервера Java уместно представить те конкретные результаты и направляет запрос там (JSP это вид). Сервлет решает, какой бизнес логический код применяется и какой JSP должны представить результаты ( сервлет это контроллер).

Эти два утверждения кажутся слегка противоречивыми. Каков наилучший способ использования bean-компонентов: мы должны помещать в них бизнес-логику или мы должны помещать в них только результаты? Существуют ли способы, которыми бины не подходят для представления модели?

Ответы [ 2 ]

6 голосов
/ 22 марта 2010

Бизнес-логика также довольно часто помещается в классы с суффиксом Manager. Хотя некоторые люди помещают бизнес-логику в сам объектный объект данных, я считаю, что лучше всего, когда методы объекта данных выполняют только простые функции, которые не зависят от каких-либо внешних зависимостей. Всю оставшуюся бизнес-логику я помещаю в bean-компонент Manager, который способен использовать несколько javabeans-объектов данных и других внешних зависимостей для следования бизнес-логике. Так, например, AccountBean будет содержать поля учетной записи и, возможно, несколько простых методов, которые используют эти поля для вычисления и возврата значения или форматирования поля. Вся бизнес-логика была бы в менеджере, возможно, в AccountManagerBean.

3 голосов
/ 22 марта 2010

Второе утверждение в основном рассказывает о двух javabeans: один для бизнес-логики, а другой для модели. Так что да, бизнес-логику все еще можно поместить в javabeans. Javabean для бизнес-логики может инкапсулировать Javabean для модели в качестве ее свойства.

public class User {
    private Long id;
    private String name;
    // ...
}

public class UserManager {
    private User user;
    // ...

    public void login() {
        // ...
    }

    public void logout() {
        // ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...