2009-05-25 15 views
0

ドメインモデルを扱うには新しいので、私には基本的な質問をするのを許してください。オブジェクト間の関係のサブセットをモデル化する方法

ドメインオブジェクトが他のドメインオブジェクトと1対多の関係にありますが、最初のオブジェクトを使用するロジックがそのオブジェクトのサブセットのみで機能する場合、このサブセットを公開する最良の方法は何ですか?

たとえば、Personは多くのOrdersに関連していますが、一部の外部ロジックではPersonに関連付けられた「Dispatched」Ordersのみを調べる必要があるとします。他のサブセット(CompletedOrdersなど)の他のプロパティと一緒に、DispatchedOrdersプロパティを持っているか、この悪いデザインですか?私はメモリ内のオブジェクトをフィルタカントと私はに興味バックサブセットのみを引っ張るためにSQLを使用する必要があり、パフォーマンス上の理由から、想定しています。

おかげ

答えて

1

あなたが興味を持っているセットを見つけるためにSQLを使用している場合あなたは完璧な世界にいます。リレーショナルクエリはすべて、そのようなことを見つけることです。完璧なクエリを見つけて、結果タプルのクラス、つまり各結果タプルのオブジェクトを把握し、適切に処理します。

あなたの例では、「ディスパッチされた注文」のセットが必要です。このディスパッチされた注文は、それぞれに必要な人物情報が添付されています。

0

私はあなたが正しいアイデアを持っていると思います。DispatchedOrdersは、私に戻ってくるオブジェクトのコレクションを正確に教えてくれます。 Curtが述べたように、SQL /ストアドプロシージャを使用してデータを取得することができます。

ドメインはビジネスプロセスと一致しており、そのプロセスの理解を補完するものではありません。つまり、なぜ人が注文より優先権を持ち、他のオブジェクトを組み立てるときにあなたが描いた角が何ですか?ラインアイテムにもオーダーが含まれていますか?これはオブジェクトの膨張につながりますか?あなたのクライアントとの議論は、答えを形作るのに役立つはずです。

超音波名声のRob Coneryはgood discussion of these types of issuesです。それは聞く価値がある。