注:WinForms C#アーリーラーニングレベル!デザイン:親を避けながら子コレクションにアクセス!
私はC#オブジェクト環境で状況を実装する最善の方法をいくつか援助したいと思います。私はまだ存在しないのでコードを投稿することはできませんが、私はあなたに代替実生活比較を与えることができます。
私はBookクラスを持っています。私はこれらのブッククラスのコレクション(<List>
)を持っています。 各Bookクラスには、Chapterクラスのコレクション(<List>
)があります。本のClassとChapterクラスは完全に異なる抽象クラスに基づいています。これらは別のビジネスレイヤーで定義され、データソースレイヤーからデータがロードされます。多くの本と多くの章があることに留意してください。
私のGUIレイヤーから、ブックを取得することができ、それはコレクションインデックス/キーに基づく基本的な属性です。 Bookクラスを使って、本の中のすべての章を入手することもできます。
私がする必要があるのは、Bookクラスを経由せずに、どのBookからでもChapterクラスを取得できることです。 これを行うには、どのような方法が最適ですか?
ありがとうございました。おばあちゃんとギャル
'get'は、メモリからチャプターへの参照を検索して取得することを意味します。このチャプターは、データベースにすべての詳細を照会するために使用できます。 チャプターにはタイトルとともに固有のIDが付いています。 私は書籍と章の別々のコレクションを保管しておき、書籍の章の階層関係を持つのではなく、それらをリンクすることを提案していますか? –
階層関係と「すべてのチャプター」コレクションの両方を持つことができます。あなたのオブジェクトモデルを通して複数のアクセスパスを持つことはかなり合理的です。しかし、私は実際には、全体の章を覚えておくのが妥当であるとは思っていません - 議会のLibrarayのためにはうまくいかないでしょうか? getById()を提供しているサービスAPIがwhetehrを隠す可能性があります。必要に応じてデータベースを取得します。 – djna