В репозитории функция фильтра возвращает динамический вектор или другой репозиторий - PullRequest
0 голосов
/ 27 мая 2018

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

1) Я возвращаю вектор STL с требуемыми объектами, например: std :: vector filterBySize (int size);

2) В методе я создаю другой репозиторийи нужные объекты я добавляю в этот второй репозиторий и возвращаю репозиторий.пример: репозиторий filterBySize (int size);

Я не знаю, какой выбор правильный.

1 Ответ

0 голосов
/ 30 мая 2018

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

 Repository filteredRepo=repo.filterBySize(40).filterByColor('yellow');

Вместо этого, если вам не нужно выполнять дальнейшие действияоперации, вы можете просто вернуть вектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...