0

假设我有一个类,其中包含与该类中的另一个成员有关的对象。

让我们使用一个库的例子。如果我有一个书籍数据库,并且我的班级称为 User。用户有一个名为 name 的成员。用户有一个对象(比如一个列表),其中包含从图书馆借来的所有书籍。用成员对象“name”中的书籍填充成员列表“booksBorrowed”的函数应该在哪里?

我是在接受用户类类型的名为 getBooks( ... ) 的类之外实现一个辅助函数,还是应该将该函数作为类的成员来实现?显然,如果我实现为实用程序函数,我显然需要提供包装器来填充用户类中的列表对象。

谢谢,托马斯

4

1 回答 1

0

在选择在用户中拥有一个成员列表“booksBorrowed”之前我会仔细考虑,因为很难确保图书馆和所有用户始终保持一致,例如确保同一本书不会同时出现在多个用户的“booksBorrowed”列表中。

我的倾向是在图书馆中有一个“bookList”,其中包含所有书籍(无论是否借用),以及每个 Book 对象中的一个“位置”字段,该字段是对特定用户或图书馆的引用(或在后一种情况下可能为 null)。由于“位置”字段只能有一个值,因此一本书不可能同时位于两个位置。

在任何给定时间,然后可以通过调用库中的成员函数来获取给定用户的“booksBorrowed”列表,该函数返回给定用户的此类列表。

如果由于“booksBorrowed”成员函数每次可能必须搜索数百万本书来创建列表而导致效率问题,则可以通过让 Library 为每个用户更新 Library 对象中的“booksBorrowed”列表进行优化,每次书被借或归还。但是,这不会改变我概述的用户界面,因此我倾向于不进行此优化,直到性能考虑表明需要它。

于 2013-01-15T20:02:00.863 回答