Я использовал шаблон репозитория (DDD и POEAA) в течение некоторого времени. Однако некоторые из наших членов команды утверждали, что это просто лишний слой абстракции и ненужный. Я вижу некоторые преимущества в своих аргументах. Современные решения ORM (NHibernate или EF) имеют почти все, что вам нужно. Я искал и нашел статью, например, this и counterargument по этой теме. Так ли шаблон репозитория переполнен?Является шаблоном репозитория overkill
ответ
Это зависит от сложности вашей проблемы и роли вашей модели домена в решении. Для простых решений репозиторий, вероятно, слишком переполнен. Но для сложных доменов с надежным языком и меняющимися потребностями/требованиями репозиторий - это хорошая, чистая абстракция, которая владеет жизненным циклом объекта домена. Многие ORM будут делать большую часть этого, но в сложном домене всегда будет какая-то активность домена, которая имеет смысл в репозитории и которая не поддерживается ORM из коробки.
Итог: это зависит от контекста.
Мозаичный доступ к данным в модульных тестах является основной причиной использования интерфейсов репозитория. Еще одна причина - удобство в обслуживании - вы можете легко реализовать стратегии кэширования или переключиться на другую реализацию доступа к данным, например получить данные из службы вместо БД.
Одна из причин, по которой мы используем репозитории в нашем проекте, заключается в том, что она обеспечивает соблюдение наших общих корней (мы разрешаем только репозитории для AR), чтобы вы правильно работали над AR, а не запрашивали, что бы ни случилось.
И как уже упоминалось, он обеспечивает хороший интерфейс для издевательства во время модульных испытаний.
Вы никогда не ошибетесь, так как это зависит от вас. :) –
@Arnis - Вот почему, как разработчики, у нас есть не только молотки, у нас есть целый набор инструментов. – Martin
@ Martin у некоторых есть только клейкая лента :) –