質問
IOCコンテナに含めるべき最も重要な機能は何ですか? 15行のコードが、「役に立つ」ために何を含めるべきか。プロジェクト内の
解決
これはかなり広く開かれたトピックであり、多くの主観性を与えられていますが、私は非常に実用的な観点から答えてみます。私が取り組んできたプロジェクトとIoCでの経験を考えると、有用性の観点から少なくとも3つの大きなポイントを探す必要があると思います。
- 構成-使用するIoCには、そのコンテナーの動作を構成できる中央の場所が必要です。構成ファイルであっても、どこかのグローバルクラスにラップできるAPI呼び出しのセットであっても、コンテナを簡単に構成できない場合は頭痛の種になります。
- ライフタイム管理-さまざまなオブジェクトのライフタイムに対応できるコンテナが本当に必要です。特定のオブジェクトに常に新しいIPersonCreatorを取得させたい場合がありますが、特定の時点で存在するIPersonServiceは1つだけにする必要があります。
- 自動依存性注入-わかりました。したがって、依存性注入はIoCの上に構築された概念ですが、これを自分で管理する必要はありません。ここでの考え方は、IPersonCreatorを初めて要求した場合、その依存関係、およびその依存関係などをすべて自動的に解決する必要があるということです。
必要なものはすべてプロジェクトによって異なりますが、ニーズに合ったコンテナがいくつかあります。
他のヒント
重要度の高い順に:
- 少なくともセッターとコンストラクターのインジェクションを許可する
- 構成をコードから分離する
- さまざまなスタイルの構成(XMLまたは注釈)を許可する
これらは15行以上のコードを必要としますが、それらは私にとって重要なようです。
所属していません StackOverflow