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

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

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

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

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

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