В настоящее время я изучаю парадигму ООП на C++ (моя программа должна иметь класс для объекта - например, TrenchCoat, Repository- список тренчей, контроллер и пользовательский интерфейс). Я должен создать метод в классе Repository, который возвращает тренчи заданного размера. У меня есть 2 варианта:
1) Я возвращаю вектор STL с нужными объектами пример: std :: vector filterBySize (размер int);
2) В этом методе я создаю еще один репозиторий и требуемые объекты, которые добавляю в этот второй репозиторий и возвращаю репозиторий. Пример: репозиторий filterBySize (размер int);
Я не знаю, какой выбор правильный.





Для меня нет правильного ответа, лучшее решение зависит от того, что вы хотите делать после операции фильтра.
Возвращение объектов репозитория упрощает дальнейшие и различные операции (например, другую фильтрацию по цвету). Фактически, если предположить, что в классе Repository существует другой метод Repository filterbyColor(String color), его можно было бы вызвать непосредственно из предыдущей операции фильтрации, как показано ниже:
Repository filteredRepo=repo.filterBySize(40).filterByColor('yellow');
Вместо этого, если вам не нужно выполнять дальнейшие операции, вы можете просто вернуть вектор.