在存储库中,筛选器函数返回动态向量或其他存储库



我目前正在学习C++的OOP范式(我的程序必须有一个对象的类 - 例如:风衣,存储库 - 风衣列表,控制器和用户界面(。我必须在 Repository 类中创建一个方法,该方法返回给定大小的风衣。我有2个选择:

1(我返回一个带有所需对象的STL向量 例如: std::vector filterBySize(int size(;

2(在该方法中,我创建另一个存储库,并将所需的对象添加到第二个存储库并返回存储库。 例如:Repository filterBySize(int size(;

我不知道哪个选择是正确的。

对我来说,没有正确的答案,更好的解决方案取决于您在过滤器操作后要做什么。
返回存储库对象,它可以简化进一步和不同的操作(例如按颜色过滤(。实际上,假设 Repository 类中Repository filterbyColor(String color)存在另一个方法,则可以直接从前面的筛选器操作中调用它,如下所示:

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

相反,如果您不需要执行进一步的操作,则可以简单地返回一个向量。

最新更新