что использовать для модели класса в 3-х уровневых стойках 2-х архитектурных? - PullRequest
0 голосов
/ 25 февраля 2012

Я не уверен, какой класс использовать для модели в этой трехуровневой архитектуре со стойками 2 в качестве MVC.

Вариант использования: Получить пункт назначения (город) с заданным именем.

Архитектура: Struts 2 MVC (Action) -> Service -> DestinationDAO

Struts 2: View <---> Action (и это действие вызывает уровень обслуживания)

DestinationDAO использует hibernate и имеет функцию getDestination(String name) для извлечения пункта назначения из базы данных.

Мой вопрос: у класса действия должно быть свойство, которое я могу использовать для отображения информации о назначении с помощью jsp. Должен ли я использовать мой пункт назначения POJO (который я использую с hibernate) или это должен быть другой объект?

Буду признателен за любые предложения / ссылки на эту тему.

1 Ответ

1 голос
/ 25 февраля 2012

Хотя вы можете использовать свой пункт назначения POJO в качестве DO для вашего представления, но я не буду рекомендовать этот подход, и некоторое время он может создать нежелательное поведение, которое трудно отладить. Одним из таких случаев использования является автоматический запуск Hibernate.запрашивает, когда вносятся некоторые изменения в модель (POJO).

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

...