IoCコンテナに頭を包み込もうとしています。このデザインパターンを深く掘り下げていくと、データコンテキストクラスをインスタンス化して使用し、破棄する前に、多数の抽象化レイヤー、インターフェイス、具象クラスに出くわしました。
私は前進を続けたいと思っていますが、解決方法がわからないいくつかの未解決の問題があり、いくつかの説明とガイダンスが必要です。
2つのプロジェクト(mvc webとefを含むデータレイヤー)を持つ一般的なWebアプリケーションで、依存関係リゾルバーが特定のインターフェイスを実装するリポジトリを期待している場合(将来いつでもリポジトリを切り替えることができます)、このインターフェイスはどこで定義されますか?データアクセスレイヤーがそれに依存するようになり、データアクセスレイヤーに常駐できないため、mvc Webプロジェクトでどのように定義できるかわかりません。その場合、mvcプロジェクトはdalに依存し、全体のポイントを見逃してしまいます。この演習の。では、両方のプロジェクトでそれを定義し、各プロジェクトに独自のコピーを参照させるという答えはありますか?..それも可能ですか?または、3番目のサービスレイヤープロジェクトを作成し、それに1つのインターフェイス宣言を貼り付けて、両方のプロジェクトにこれを参照させる必要がありますか?
IProductRepository、IClientRepository、IProductService、IClientServiceなどのインターフェイスを備えたUnity IoCについて説明している記事をいくつか見てきました(これは、冒頭の段落で言及していたものです)。これらの各インスタンスがデータベース内のテーブルを参照することになっていると仮定して正しいですか?もしそうなら、私が50のテーブルを持っているとどうなりますか?すべてを切り離すためだけに、50個のリポジトリインターフェイスと50個のテーブル関連インターフェイスを作成する必要がありますか?また、POCOクラスでEFを使用すると、どのような影響がありますか?各POCOに独自の指定されたインターフェイスを実装させる必要がありますか?
ありがとう