ООД: Кто должен создать объект из персистентного слоя? - PullRequest
1 голос
/ 14 марта 2011

В моем программном обеспечении у меня есть 5 основных уровней:

  • Пользовательский интерфейс
  • КОНТРОЛЛЕР
  • ДОМЕН (бизнес-правила)
  • PERSISTENCE
  • MYSQL (дБ)

В каком слое и на кого следует возложить ответственность за получение доменных объектов из уровня персистентности?Я решил создать новый раздел в доменном слое, но это делает уровень контроллера неоднозначным относительно того, как создавать доменные объекты.

Я ищу элегантное решение для создания объектов домена путем вывода их из постоянного состояния.

Ответы [ 2 ]

0 голосов
/ 14 марта 2011

Вы должны извлечь объекты из вашего уровня персистентности из слоя, который знает контекст / вариант использования.

Другими словами: в слое, где вы реализовали свой вариант использования, выследует вызвать хранилище (или другие объекты персистентного уровня), которое может извлекать (или сохранять) ваши объекты из (или в) базы данных.ИМХО, это единственно правильная вещь.Это уровень, который знает «контекст» (уровень, который знает более широкую картину), который также знает «время жизни» вашей транзакции.Этот слой также отвечает за управление транзакциями.

0 голосов
/ 14 марта 2011

Хорошо, если ваш уровень персистентности готов, есть несколько инструментов, которые будут создавать классы из схемы БД,

Одним из них является плагин персистентности NetBeans.

Теперь вы можете использовать любой инструмент ORM для модели предметной области [классы, созданные из схемы БД] и реальной БД.

...