Плюсы:
- Хранилища скрывают сложные запросы.
- Методы репозитория могут использоваться как границы транзакций.
- ORM можно легко насмехаться
Минусы:
- Структуры ORM предлагают уже такую коллекцию, как интерфейс к постоянным объектам, каково намерение репозиториев. Таким образом, хранилища добавляют дополнительную сложность в систему.
- комбинаторный взрыв при использовании методов findBy. Эти методы можно избежать с помощью объектов критериев, запросов или объектов-примеров. Но для этого не требуется никакого репозитория, потому что ORM уже поддерживает эти способы поиска объектов.
- Так как репозитории представляют собой совокупность совокупных корней (в смысле DDD), нужно создавать и передавать вокруг совокупных корней, даже если изменяется только дочерний объект.
Вопросы:
- Какие плюсы и минусы вы знаете?
- Вы рекомендуете использовать репозитории? (Почему или почему нет?)