私はドメインモデリングを初めて利用していますので、いくつかの初歩的な質問をしてください。私の最初の質問は、ドメイン関係をモデル化する時期を知ることです。私は、すべてのクラスが他のクラスと何らかの形で関連しているように見えることがあることが時々分かります。そして、これらの関係を直接(あるクラスのリファレンスを別のクラスに保持することによって)モデル化する必要があるかどうかは不明です。ドメインの関係をモデル化するタイミングとコンテキストリレーションを処理する方法を知ります
たとえば、Ordersのコレクションに関連するPersonクラスがあり、各OrderがProductsコレクションに関連しているとします(想像を絶する例を許してください)。これらのエンティティはそれぞれ、対応するテーブルをデータベースに持っていました。人が(その人の注文によって)関連している商品を扱うクライアントロジックを書いているのであれば、特にこのコレクションを入手するためにSQLを作り出す必要がある場合、Person.Productsコレクションを持っているようですPersons Ordersコレクションを取り戻してください。これはOKか悪い設計ですか?これを処理するにはどうすればよいでしょうか?
第2に、関係が本質的に文脈上の状況はどうですか?前の例では、personメソッドで実行したいビジネスロジックの中に、特定のProduct(つまりPersonのOrdersコレクションのサブセット)を含むPerson関連のOrdersをすべて処理する必要があると説明しています。私は非常に簡単にこのサブセットを正確に返すいくつかのSQLを構築することができます。質問はどこに結果を公開するのですか? Productパラメータを受け取り、クライアントコードがこのように見えるようにOrdersコレクションを返すメソッドをPersonに配置する必要がありますか?
person.OrdersContaining(Product p)
は、エンティティはそれらの関係の異なるサブセットを公開するために、このような複数の方法を持っているべきか、人は1つだけ注文の収集及びサブセットは他のいくつかの方法で処理する必要がありますか?
おかげ
非常に真です。適切なモデルはなく、有用なモデルだけです。 – CesarGon