Почти.Между контроллером, который обрабатывает логику представления, и DAO, который обрабатывает логику доступа к данным, должен существовать бизнес-уровень, содержащий бизнес-объекты.
Основными обязанностями этих бизнес-объектов являются
- для предоставления бизнес-услуг контролерам.Они являются фасадом
- для инкапсуляции бизнес-логики приложения
- для разграничения транзакций
- для использования одного или нескольких DAO для получения, поиска и сохранения объектов.
Этот уровень очень важен, потому что вы хотите иметь возможность выполнять несколько операций с вашей базой данных в рамках одной транзакции.И это не должно быть обязанностью веб-контроллера, чтобы справиться с этим.Более того, одни и те же бизнес-сервисы могут использоваться другими клиентами, кроме веб-контроллеров (клиент Swing, пакетная программа и т. Д.)
Бизнес-объекты обычно реализуются с использованием EJB-сессий или Spring-сервисов.Они также полезны, чтобы иметь возможность
- модульного тестирования контроллера путем насмешки бизнес-объектов.
- модульного тестирования бизнес-логики путем насмешки над DAO