継承と抽象化の多くの層を持つ既存の大きなコードベースにDIを導入したいと思います(そして参照はあらゆる方向に進んでいます!)。最も低いレベルの1つで、DIを使用して、特定のオブジェクトのライフスタイルをシングルトンに制御したいと思います(現在の実装ではThreadStaticを使用しており、問題があります)。これを上から下に注入し、すべてのオブジェクトをコンテナーに登録する必要がありますか(これは多くの作業です)、またはこの迅速で汚いスタイルを実行する方法はありますか(今のところ;)?私はC#とCastleWindsorを使用しています。
質問する
139 次
1 に答える
0
コンテナを提供するサービスロケータパターンを選択できます。多くの人が少し悪い習慣だと考えています。コンストラクターインジェクションの代わりにservicelocationを使用して、ファクトリクラスの負荷を記述しないようにするのは悪いことですが、ハードな依存関係とバグのあるコードを使用するオプションがある場合は、何もしないよりも良いと主張できます。悪いhttp://codeofrob.com/entries/service-location-is-not-always-evil.htmlとは見なされない状況がいくつかあります
ただし、私があなたである場合は、このテーマについて少し読み、それがあなたのニーズとアプリケーションにどのように適合するかを確認します。DI / IoCの議論は、少し宗教的になる傾向があります。
于 2012-04-19T07:32:49.037 に答える