Domain Driven Design - пользовательский интерфейс делает прямой вызов в хранилище - PullRequest
2 голосов
/ 28 февраля 2011

В проектировании, управляемом доменом, существует ли строгое и быстрое правило, согласно которому уровень пользовательского интерфейса не должен обращаться к уровню доступа к данным / хранилищу данных?Если нет, то как это должно работать правильно?

Спасибо

Ответы [ 3 ]

0 голосов
/ 28 февраля 2011

Некоторым людям нравится все маршрутизировать через сервисы приложений. Мне лично не нравится такой подход .

Единственная причина, по которой я вижу, что может сделать подход «все проходит через сервисы», звучит разумно для меня, если вы явно хотите, чтобы это было так, чтобы провести смелую и сильную грань между моделью клиента и домена.

Это очень похоже на использование / исключение шаблона репозитория. Цитата Айенде:

Если вы не хотите, чтобы граница LAYER / TIER не имела границы, просто используйте nhibernate напрямую

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

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

Нет, нет «жесткого и быстрого правила».

Если вы создаете простое приложение, просто добавьте ISession (или что-то подобное, если вы не используете NHibernate).

Когда все становится сложнее, я рекомендую вам взглянуть на совокупные корни, репозитории и шаблоны пользовательского интерфейса, такие как MVVM, Passive View и MVC.

«Правильный путь» зависит от вашего контекстаи как вы планируете тестировать.

0 голосов
/ 28 февраля 2011

Обычно вы обрабатываете вызовы к уровню доступа к хранилищу данных / хранилищу через прикладной уровень (контроллер), который вызывает доступ к данным на уровне инфраструктуры.

Однако, у Ayende (известности NHibernate) есть некоторые интересные моменты относительно этого «правила».

http://ayende.com/Blog/archive/2009/04/23/night-of-the-living-repositories.aspx

...