1

いくつかのさまざまな c# プロジェクト用に、カスタムの汎用ドメイン モデルを構築しています。私が今苦労している問題は、モデル構造の選択です。親、子、祖先などの階層モデルを作成するか、よりフラットなグラフのような構造を作成します。階層とは、Entity.Parent を記述して、関係ではなくリンクを持つ親とグラフを取得できる場所を意味します。

フラットなグラフを作成する方がはるかに単純で、エラーが発生しにくいです。たとえば、個々のエンティティを正しい構造に組み立てなくても、ランダムな順序で一度に 1 つずつロードできます。

しかし、階層ドメインの概念も非常に魅力的です。うまく構成され、整理されています。階層ドメインの大きな利点は、親または祖先からプロパティを継承できることです。たとえば、deletion-state を子孫に継承できます。平らなグラフを持つことは、これほど簡単ではありません。また、これには常にすべてのエンティティに対してすべての祖先をロードする必要があり、これはもちろんマイナス面です。

私の質問は、階層ドメインには他にどのような利点があるのでしょうか? 先祖からプロパティを継承し、おそらくグラフ内でメッセージを伝えること以上のことは思いつきませんでした。たとえば、エンティティが子孫エンティティの変更に反応したい場合です。さらにメリットは?上記が本当に必要かどうかはわからないので、これ以上大きなメリットがなければ、作業がはるかに簡単なので、とにかくフラットな構造を選ぶと思います。

4

1 に答える 1

0

あなたは DDD にタグを付けたので、指定されたドメインの集約ルートは何かを尋ねて、それで決定してもらいます。

于 2012-07-17T16:58:45.970 に答える