Правильно ли использовать DAO в доменных объектах? - PullRequest
2 голосов
/ 10 ноября 2010

В статье я обнаружил следующее: «Классы DAO никогда не должны вызываться напрямую из клиента (Services и другие потребительские классы). Клиенты всегда должны вызывать объекты домена, которые в свою очередь должны вызывать DAO для сохранения данных в хранилище данных. ".

Это не то, что я видел раньше, когда делал DDD. Есть мысли по этому поводу?

Спасибо

Ответы [ 2 ]

1 голос
/ 10 ноября 2010

«Классы DAO никогда не должны вызываться напрямую из клиента (Services и другие потребительские классы). Клиенты всегда должны вызывать объекты домена, которые, в свою очередь, должны вызывать DAO для сохранения данных в хранилище данных».

Нет, я думаю, что это неправильно.

Доменные объекты, вероятно, также не должны ссылаться на репозитории.

Если объекту домена необходимо сотрудничать с другимидоменные объекты, он может вызывать доменные события или принимать другие доменные объекты в качестве параметров для методов (в этом случае клиент / вызывающая сторона извлекает все необходимые доменные объекты через репозитории).

1 голос
/ 10 ноября 2010

Последнее предложение, которое вы цитировали из статьи, могло быть написано более четко. Я подозреваю, что автор имел в виду (выделен мой добавленный текст):

Клиенты всегда должны вызывать объекты домена , которые должны вызывать репозиторий , который в свою очередь должен вызывать DAO для сохранения данных в хранилище данных.

...