多層プロジェクトでは、インターフェイスをどこに定義する必要がありますか?


9

3つのサブプロジェクト(データアクセスプロジェクト、ビジネスロジックプロジェクト、プレゼンテーションプロジェクト)で構成される多層プロジェクトがあります。インターフェイスをどこに定義すればよいですか?DALとBLLの両方で定義されたインターフェイスがあるはずだと思います。インターフェイスに基づく「テスト」データを使用してビジネスロジックレイヤーをテストする状況では、おそらく、インターフェイス?

これをどのように配置すべきかに関するベストプラクティスまたはアイデアはありますか?

回答:


9

これに対する1つの良いアプローチは、階段パターンを使用することです。

ここに画像の説明を入力してください

したがって、DALは1つのプロジェクトにあり、そのインターフェイスは別のプロジェクトにあり、BLLは3番目のプロジェクトにあり、そのインターフェイスは4番目のプロジェクトにあります。

たとえば、ビジネスレイヤーをテストするときは、実際のDALやNHibernateなどをすべてスコープにドラッグするのではなく、DALインターフェイスプロジェクトを参照するだけで、これらのインターフェイスを取得するという考え方です。

私の知る限り、このパターンは彼の著書「C#によるアダプティブコード:設計パターンとSOLID原則によるアジャイルコーディング」のGary McLean Hallの作成です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.