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