Являются ли команды / операции записи в хранилище антишаблоном? - PullRequest
2 голосов
/ 10 января 2011

Я уже использовал шаблон репозитория в нескольких проектах .NET, но я всегда возвращаюсь к спорам с самим собой по этому вопросу:

Думая о репозитории как о хранилище данных с запросами, можно утверждать, что наличие команд (или операций записи) в репозитории является ошибочным представлением о принципе разделения команд и запросов . С другой стороны, хранение методов, имеющих отношение к одним и тем же объектам домена в одном классе, упрощает кодирование и использование и продвигает принципы DRY и KISS .

Какие у вас разные взгляды / аргументы? Что скажут Фаулер или Эванс?

1 Ответ

2 голосов
/ 10 января 2011

Для меня наличие логики постоянства и ссылок на базовые технологии, такие как O / RM, в одном месте важнее, чем разделение ответственности за чтение / запись.Поэтому я объединяю команды и запросы в одном конкретном репозитории для каждого корневого агрегатного домена, обычно с абстрактным базовым классом для технологии персистентности (Nhibernate, Entity Framework и т. Д.).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...