10

Я использовал шаблон репозитория (DDD и POEAA) в течение некоторого времени. Однако некоторые из наших членов команды утверждали, что это просто лишний слой абстракции и ненужный. Я вижу некоторые преимущества в своих аргументах. Современные решения ORM (NHibernate или EF) имеют почти все, что вам нужно. Я искал и нашел статью, например, this и counterargument по этой теме. Так ли шаблон репозитория переполнен?Является шаблоном репозитория overkill

ответ

12

Это зависит от сложности вашей проблемы и роли вашей модели домена в решении. Для простых решений репозиторий, вероятно, слишком переполнен. Но для сложных доменов с надежным языком и меняющимися потребностями/требованиями репозиторий - это хорошая, чистая абстракция, которая владеет жизненным циклом объекта домена. Многие ORM будут делать большую часть этого, но в сложном домене всегда будет какая-то активность домена, которая имеет смысл в репозитории и которая не поддерживается ORM из коробки.

Итог: это зависит от контекста.

+9

Вы никогда не ошибетесь, так как это зависит от вас. :) –

+0

@Arnis - Вот почему, как разработчики, у нас есть не только молотки, у нас есть целый набор инструментов. – Martin

+5

@ Martin у некоторых есть только клейкая лента :) –

4

Мозаичный доступ к данным в модульных тестах является основной причиной использования интерфейсов репозитория. Еще одна причина - удобство в обслуживании - вы можете легко реализовать стратегии кэширования или переключиться на другую реализацию доступа к данным, например получить данные из службы вместо БД.

1

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

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