MW
Эти спецификации применяются уже после выборки из бд у вас или как?
- если да, то не кажется ли не совсем хорошей идеей брать все товары из базы, а потом фильтровать ненужные?
- если нет, тогда как это реализовано? Спецификации вносят изменения в запрос к бд?
В чём преимущества перед, например, добавлением query scope
availableProducts в котором будут определены те же критерии получения продуктов (наличие, статус visible) и при изменении условий мы также изменим только одно место - скоуп.За статью лайк в любом случае 😉
я стараюсь уходить от рамок фреймворков в своей работе. в приведенных примерах в статье не важно в каком фреймворке это использовать, хоть в битриксе. это обычный класс без каких либо связей.
» Эти спецификации применяются уже после выборки из бд у вас или как?
скорее всего вы не поняли смысла паттерна. этот паттерн используется для вынесения бизнес условий в отдельный класс. чтобы потом, когда изменятся условия вам не приходилось искать все места, где поправить эти условия. все в одном месте. к бд это никакого отношения не имеет.
» не кажется ли не совсем хорошей идеей брать все товары из базы, а потом фильтровать ненужные?
тоже не верно поняли. там берутся не все. Мы взяли товары, которые есть в базе, вывели первую страницу с этими товарами. и при выводе, с использованием данного паттерна выводим или не выводим кнопку заказать. с помощью этого же паттерна проверяем доступность на складе для оформления корзины. все находится в одном месте. и когда изменится требование, то изменим только в 1 месте.
» Спецификации вносят изменения в запрос к бд?
этот паттерн никакого отношения к бд не имеет.
