0

Entity Framework Model First アプローチで CRUD アプリケーションを構築しています。私のアプリケーションは、UI 層と DAL の両方がドメイン層に依存し、ドメイン層は何にも依存しないように構造化されています。ドメイン層は、リポジトリとドメイン オブジェクト インターフェイスのみを公開します。リポジトリは DAL に実装され、依存性注入によってドメイン層に提供されます。すべてのリポジトリと同様に、私のリポジトリは getCustomer、deleteCustomer などの関数を公開しますが、これらの関数は DAL に実装されているため、DAL はドメイン層のインターフェイスに準拠するオブジェクトを作成できる必要があります。今、私のバイナリの選択は、それをどのように行うべきかです:

4

1 に答える 1

1

ドメイン層は、リポジトリとドメイン オブジェクト インターフェイスのみを公開します。

このタイプまたはアーキテクチャ (六角形アーキテクチャ) では、ドメイン オブジェクトはインターフェイスを持つべきではなく、リポジトリだけを持つべきです。代わりに、DAL にドメイン オブジェクトを直接作成 (再構成) させます。ドメイン オブジェクトをインターフェイスに抽象化してもメリットはなく、ファクトリなどの不必要な複雑さだけが得られます。

また、Heather が指摘したように、リポジトリの抽象化も不必要に複雑になることがよくあります。実装間で真に移植可能なリポジトリの抽象化を行うことは、ほとんどの場合無駄です。私の意見では、リポジトリの抽象化の中心的な利点は、実装クラスを直接参照するだけで、インターフェイスなしで達成できるカプセル化です。

于 2012-11-28T23:53:04.893 に答える