私はシャープなアーキテクチャを調査しており、実際にエンティティを他のレイヤーに渡していることを確認しました (プレゼンテーション レイヤーまで)。エンティティのインターフェイスを公開して、より疎結合にするべきではありませんか? または、何か不足していますか?
1 に答える
DDD はさまざまな方法で実践できると思いますが、最も重要なのは、プロジェクトのニーズと状況を実際に確認することです。asp.net MVP または MVC Web アプリケーションで DDD を実践する場合、アプリケーションはおそらく他の外部システムと通信しません。その場合、プレゼンテーション層にドメインについて何も知らせないためだけに、サービス層と DTO オブジェクトを使用するのはやり過ぎです。最も重要なことは、エンティティの作成、ドメイン ロジック、およびエンティティを無効な状態にする可能性に関する知識を隠したり削除したりすることです。これはすべて、優れたドメイン エンティティ API を使用して実現できます。次に、エンティティをプレゼンテーション レイヤーに送信することをお勧めします。リポジトリを使用して、プレゼンテーション層の Controller/Presenter クラスにエンティティをロードすることもできます。多くの DDD の例を見れば、人々は自分に最も適したものを好む傾向があることがわかります。インターフェイスを使用してエンティティを公開する例や実践を見たことがありません。internal、protected、および readonly 属性だけで多くのことを達成できます。これにより、プレゼンテーション層の API 機能が非表示になります。
/よろしくBacceSR