Я бы лично выбрал твой первый вариант.
Если вы думаете о втором варианте с точки зрения DDD, объект продукта, который, как я предполагаю, является объектом вашего домена, обладает знаниями о том, что на самом деле не является частью бизнес-проблемы, которую вы пытаетесь решить (IE , вы домен). Скорее сортировка и фильтрация используются в пользовательском интерфейсе или некотором другом компоненте обработки на стороне сервера.
Кроме того, если взглянуть на второй вариант с точки зрения единой ответственности (он же SOLID), вы увидите, что ваш бизнес-объект Product
отвечает за сортировку и фильтрацию, что совсем не связано с продуктом.
Вот так я вижу вещи. Мне было бы интересно узнать мнение других.