C++类中的静态向量



我正在研究一个 restraunt 订单系统作为我的计算机科学课程的一个项目,我想知道在我的 Order 类中使用静态向量来包含我的所有订单是否是最佳实践,或者我应该在我的主程序中使用它?我仍在解决所有问题,但基本上哪一个更好,或者我应该完全探索另一种方式:

class Order {
public:
static vector<Order> orders; //should this be private instead?
}
int main(){
vector<Order> orders; //should I just pass this to my methods?
}

确定对象的静态列表是否有意义,以及哪个类应该保存这些对象可能取决于人们想要使用对象列表的原因和方式。因此,在不更具体地说明用例的情况下,像"做"或"不做"这样的明确答案可能是基于意见的。

由于缺少用例,以下内容不是答案。但让我与您分享一些想法:

我建议表达列表的含义/目的,例如通过有意义地命名变量。这可能是openOrdersallOrderObjectssharedOrders

与含义相关,您可能应该隐藏您使用vector的实现细节。特别是您甚至将矢量暴露给公众这一事实使得很难确保整个程序的含义。例如,如果含义是openOrders,谁阻止某人将已关闭的订单添加到列表中?

所以我会隐藏向量(使其私有或至少受到保护);添加限制访问的"control"函数,命名这些函数以使目的变得明显,并限制对列表的访问以确保正确的含义。

根据含义,您还可以重新考虑数据结构vector。也许map更合适,例如,如果订单具有唯一的真实世界标识符,例如与客户共享的订单号,并且如果您想确保不会两次创建具有相同订单号的对象......

让我到此为止。也许你会从社区得到更多的想法。

但我认为主要问题是:明确列表的含义/目的。

最新更新