0

そのクラスの別のメンバーに関して入力されたオブジェクトを持つクラスがあるとしましょう。

ライブラリの例を使用してみましょう。書籍のデータベースがあり、クラスが User. ユーザーには name というメンバーがいます。ユーザーは、図書館から借りたすべての本を含むオブジェクト (リストなど) を持っています。メンバ リスト "booksBorrowed" にメンバ オブジェクト "name" からの本を入力する関数はどこにありますか?

ユーザー クラス タイプを受け入れる getBooks( ... ) というクラスの外部にヘルパー関数を実装する必要がありますか?それとも、関数をクラスのメンバーとして実装する必要がありますか? 明らかに、ユーティリティ関数として実装する場合、ユーザー クラス内にリスト オブジェクトを設定するためのラッパーを提供する必要があります。

ありがとう、トーマス

4

1 に答える 1

0

図書館とすべてのユーザーが常に一貫していることを保証するのは難しいので、ユーザーに「booksBorrowed」というメンバーリストを選択する前に、私は難しいと思います。たとえば、同じ本が同時に表示されないようにするなどです。複数のユーザーの「booksBorrowed」リストにあります。

私の傾向は、すべての本(借りているかどうかに関係なく)を含むライブラリに「bookList」を置き、各Bookオブジェクトに特定のユーザーまたはライブラリ(または後者の場合はおそらくnull)。「場所」フィールドには1つの値しか設定できないため、本を一度に2つの場所に配置することは不可能です。

次に、いつでも、特定のユーザーの「booksBorrowed」リストを取得することができます。これは、特定のユーザーのそのようなリストを返すLibraryのメンバー関数を呼び出すことによって行われます。

「booksBorrowed」メンバー関数が毎回リストを作成するために数百万冊の本を検索する必要があるため、効率が懸念される場合は、ライブラリが各ユーザーのLibraryオブジェクトの「booksBorrowed」リストを毎回更新することで最適化できます。本を借りたり返却したりします。ただし、それでも概要を説明したユーザーインターフェイスは変更されないため、パフォーマンスを考慮して必要であることが示されるまで、この最適化を行わない傾向があります。

于 2013-01-15T20:02:00.863 に答える