0

ADM と RDM の違いを理解しようとしています。

私の見方では、adM と RDM の議論はすべて、ワークフロー (オブジェクトのコラボレーション) を実際に決定する場所に帰着します。RDM は、データ リポジトリ オブジェクトと検証オブジェクトをビジネス オブジェクト (モデル) のコンストラクターに挿入します。ビジネス オブジェクト メソッドは、これらのオブジェクトを連携させるワークフローを定義します。

ADM は、これらすべての共同オブジェクト (モデル、リポジトリ、検証オブジェクトを viewModel/controller などに渡します) を渡します。viewmodel/controller のメソッドは、オブジェクト間のワークフローの共同作業を定義します。

これは正しいですか、それとももっと基本的なものが欠けていますか?

4

1 に答える 1

3

RDM = リッチ ドメイン モデルだと思います。ADM と RDM (実際には「実際の」ドメイン モデル) の主な違いは、RDM がビジネス プロセス (アプリが開発された問題とソリューション) を可能な限り自然に有機的にモデル化することです。

ドメインモデルはビジネスの動作をモデル化しますが、貧血モデルは基本的にデータを保持する POCO で構成され、基本的には db テーブルを模倣します。これらの POCO は、ほぼ手続き的な方法で使用され、サービスによって検証および処理されます (多くの場合、これは単なる静的メソッドです)。

簡単に言えば、ADM は動作を保持しない (またはほとんど保持しない) オブジェクトで構成され、データ バッグとしてのみ機能しますが、RDM はビジネス プロセスを可能な限り正確かつ自然にモデル化します。ほとんどの場合、貧血ドメインは、すべてが db から始まり、db を中心に展開する db セントリック アプローチの結果です。

コントローラー、ビュー、および DI コンテナーは、実装の詳細にすぎません。

于 2012-03-19T15:42:04.517 に答える