Хорошо ли использовать спецификации для запросов? Я понял что в репозитории городить кучу методов для поиска не вариант (сразу отмечу что в моем понимании репозиторий - не коллекция). Остается либо использовать какой-то универсальный метод (где условия будут разбросаны по проекту) или... спецификации. Объясню поподробнее.
Изначально шаблон проектирования подразумевает проверку объектов на соответствие условию.Спецификация
Строит ясное описание бизнес-правил, на соответствие которым могут быть проверены объекты. Композитный класс спецификация имеет один метод, называемый isSatisfiedBy, который возвращает истину или ложь в зависимости от того, удовлетворяет ли данный объект спецификации.designpatternsphp
Я подумал что его можно использовать не для проверки уже готовых выборок, а для будущих. Проще говоря, создаются классы которые принимают заранее обозначенные данные и которые передаются в метод find в репозитории.
Таким образом, мы все еще сохраняем преимущество методов (все условия в одном месте), но и имеем только 1 метод в репозитории.
Уверен что такое могли придумать уже 30 лет назад. Просто хочу убедиться что такой подход имеет место быть. Еще интересно было бы узнать о его недостатках.

21 Авг 2019 в 06:59
165 +1
0
Ответы
1

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

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

В целом, использование спецификаций для запросов в репозитории может быть полезным и удобным подходом, но как и с любым другим шаблоном проектирования, важно внимательно взвешивать его преимущества и недостатки в конкретном контексте проекта.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир