問題タブ [anemic-domain-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Entity Framework - ドメイン モデルとは異なる永続モデル
次の遅延コードがあります。Pesistence Model と (貧血) Domain Model の間には分離があります。この分離と暗黙の変換の利点は何ですか? 欠点はありますか?
私は、暗黙的な変換で以下が可能であることを知っています: SplitAmountEF saEF = dbContext.SplitAmount.Find(id); SplitAmount sa = saEF; //暗黙の変換。交換して使用できます。
ドメイン モデルが永続モデルとほぼ同じである場合は、(ドメイン モデルをまったく使用せずに) 永続モデルのみを使用した方がよいのではないでしょうか。
例:
domain-driven-design - リッチ ドメイン モデル アプリケーション内での持続性レイヤーとドメイン レイヤーの分離
をより堅牢にするために をpersistent layer
から分離するという概念があります。これは、 でのリポジトリの実際の実装には依存せず、リポジトリ インターフェイスのみに依存します。domain layer
domain layer
persistence layer
これは、次のことを意味します。
さて、どうPerson
ですか?
ではanemic-domain-model
、次のことができます。
Person を永続化レイヤーに入れるのはなぜですか?
実装固有のコードが含まれているためです。
たとえば、JPA 関連のアノテーションが含まれる場合があり、リポジトリと同様に、ドメイン レイヤーにデータストア固有の実装は必要ありません。
Person にはドメインロジックが含まれていないため、anemic-domain-modelで上記を実行できます。つまり、 Person をpersistene レイヤーに配置できます。貧血ドメイン モデル
で
は、データは動作から分離されているため、Person の動作は別のサービスによって行われ、Person 自体には書き込まれません。
この場合、 Person にはドメイン固有のロジックが含まれているため、rich-domain-modelでこのレイヤー分離を行うことはできません。
リッチ ドメイン モデルのアプリケーション内で、この層の分離をどのように行いますか?
あるいは必要ないと思っているのかもしれません。