2012-03-03 18 views
1

ライブラリ、セクション&の3つのエンティティがあるとします。単純なアプリケーションのクラス図

Libraryは、複数のSectionsで構成されています。 Sectionにはいくつかのものがあります。Books

Bookは、1 Sectionにのみ属することがあります。そして、最後にSectionは1 Libraryにしか属していないかもしれません。

私はそれを参照してください方法は、そのクラスLibrary集計SectionsとクラスSection集合体Booksのコレクションのコレクションです。

すべての書籍をサーバーにアップロードする必要があります。私は、そのコンストラクタでBookオブジェクトを受け取るクラスBookUploaderを構築します。サーバー上で、各ライブラリ用のフォルダを作成し、各ライブラリ内にセクションフォルダを作成し、その中にブックを配置します。

問題はBookオブジェクトをBookUploaderに渡して以来、私はそれが何であるか分かりません。さらに、どのセクションがどの図書館に属しているのか分かりません。

BookUploaderにライブラリオブジェクトを渡してから、すべてのセクションをループして各セクションのすべてのブックをループすると思っていましたが、BookUploaderは3つのクラスに依存しています。

彼は、各ブックオブジェクトはセクションを保持し、各セクションはそれが私の元のデザインの逆の全体であるライブラリを保持する必要があることを提案しました。

誰が自分の考えを共有できますか?

ありがとうございます。

+1

あなたのデザインは「書籍」をどのようにして1つのセクションにするのですか?本のインスタンスを1つのセクションに強制することを意味しますか?そうであれば、それは当てはまりますが、同じ本の複数の「コピー」については、それらを適切に構築することを慎重にしなければ、複数のセクションに広がることがあります。現実の世界の状況をモデリングしているので、現実の世界でどのように扱われるか考えてみてください。本には、ほとんどの場合、ライブラリとセクション情報が何らかの形でスタンプされています。ライブラリ/セクションには、使用可能な書籍のリストが含まれている場合があります。 – Chad

+0

@Chadはい、私のデザインには書籍が1つしかありません。私の問題は、どのオブジェクトにもう一方のオブジェクトを含めるべきかということです。ライブラリオブジェクトがセクションのコレクションを保持するか、すべてのセクションがライブラリオブジェクトを保持すべきか? – Songo

+1

これは完全に適切だと思われますが、書籍 - >ライブラリ関係(これまでモデル化しようとしてきたものとは反対の)をどう扱うかについてのオリジナルの質問に戻ります。あなたが外の地面にある図書館の本を見つけたとします(IRL)。それが図書館の本だとどうやって分かりますか?あなたに伝えるための本にいくつかのマーカーがありましたか?私はそこにあったと確信しています... – Chad

答えて

0

@チャドのコメントを読んだあと、デザイン自体に問題のエンティティを変更する必要があることがわかりました。 欠落していたのは、親クラスへの参照を返す各子クラスの関数です。

1

アグリゲーションを双方向関連の一端として定義することには何も問題ありません。たとえば、hereまたはhereのように見えます。

実装の詳細を探している場合は、見てください。 eceのEReferencesのEOpposite機能で

+0

+1。ありがとう – Songo

関連する問題