IoC を使用してデータ アクセス ライブラリを実装するビジネス オブジェクト ライブラリがあるとします。データ アクセス インターフェイスはどこで定義する必要がありますか? それはどの図書館に属していますか?それとも、インターフェイス専用の別のライブラリにある必要がありますか?
1 に答える
ビジネスドメイン内のインターフェイスを定義します。次に、インターフェイスの実装は、ビジネスドメインを参照するライブラリに含まれます(アプリケーションコンテキストが何であれ、またはアプリケーションコンテキストによって参照されるIoCライブラリによって参照されます)。
次に、ある実装を別の実装と交換することは、別のライブラリを作成し、アプリケーションコンテキストで参照を交換することだけです。
.NETプロジェクト構造では、次のようになります。
ドメインロジックプロジェクト
(参照なし)
ドメインモデル
リポジトリインターフェイス
IoCサービスロケーターインターフェイス
リポジトリプロジェクト
(参照ドメインロジックプロジェクト)
リポジトリ実装
IoCプロジェクト
(参照ドメインロジックプロジェクト)
(参照リポジトリプロジェクト)
IoCサービスロケーター実装
IoCブートストラップ
アプリケーションプロジェクト
(参照IoCプロジェクト)
(ドメインロジックプロジェクトを参照)
(リポジトリプロジェクトを参照する必要がある場合がありますが、不明です)
ドメインモデルと対話するUIを実装します