2012-01-07 10 views
1

私は1つの名前空間を持っています。これにはさまざまなクラス構造内にたくさんのクラスが含まれています。しかし、これらのクラスの多くはお互いに依存しています。クラス間の単一の名前空間でIOCを使用する

1つの名前空間でも、これはIOCライブラリ(例:Autofaq)を使用する場所ですか?

おかげ

+4

依存性の注入は_loosely coupled_アプリケーションを構築するためのパターンです。クラス間の相互参照が多い場合(つまり、これらのクラスが強く結合されている場合)、ツールをスローするのではなく、最初に参照を外すことをおすすめします。 –

+3

名前空間は依存関係注入とは関係ありません。すべてのクラスが単一の名前空間にある場合でも、依存関係注入を使用できます。しかし、名前空間には理由があります。クラスをグループ化してコードベースをメンテナンスできるようにします。 – Steven

+0

ありがとうございます。 Sebestian、私はインターフェイスなどのコードを意味すると思いますか? – dotnetdev

答えて

1

は理想的には、コンポーネントが一緒に配線されている(エントリポイントに近い)アプリケーションで唯一の「構図ルート」を持っている必要があります。それはオートファックのようなものを使う唯一の場所です。

個々のクラスは特定の依存性注入フレームワークに依存すべきではありません。それらは一般的な依存性注入の原理に従うだけでよく、すなわち、コンストラクタの引数を介して依存関係をとるべきである。ライブラリはDIフレームワークに依存すべきではありません。

(すべてではないDIフレームワークは、これを可能にする。いくつかのクラスに属性を追加する必要が。あなたが規則の例外と考えることができます。)

関連する問題