ホームページ >Java >&#&チュートリアル >Spring IOC と DI を理解する

Spring IOC と DI を理解する

PHP中文网
PHP中文网オリジナル
2017-06-22 14:55:211356ブラウズ

IOCは「制御の反転」と呼ばれる設計思想です。

1. 浅いレベル - 名前からの分析
「制御」は、作成、保守、破棄などのオブジェクトのライフサイクルの制御を指します。このプロセスは、通常、新しいキーワードを使用するなど、プログラムによって積極的に制御されます。は、オブジェクトの作成 (create)、使用中の参照の保持 (maintain)、すべての参照が失われた後に GC によってオブジェクトがリサイクル (destroy) されるために使用されます。
「反転」とは、オブジェクトの作成、保守、破棄などのライフサイクルの制御がプログラム制御からIOCコンテナ制御に変更され、オブジェクトが必要なときにIOCコンテナから名前で直接取得できるようになります。

2. より深いレベル - DI に関して言えば、依存性注入は IOC の重要な実装です
オブジェクトの作成には、別のオブジェクト A への参照を保持するオブジェクト A のメンバー変数など、他のオブジェクトの作成が含まれることがよくあります。 B、これは依存関係です、A は B に依存します。 IOC メカニズムはオブジェクトの作成を担当するため、この依存関係も IOC コンテナによって処理される必要があります。責任のある方法は、構成ファイルに依存関係を書き込むことで、依存関係を挿入します。その後、依存関係のあるオブジェクトを作成するときに、IOC コンテナーが依存関係のあるオブジェクトを挿入します。たとえば、A を作成するときに、依存関係があることが検出され、IOC が実行されます。コンテナーは、A が依存するオブジェクト B を作成し、それを A (アセンブリ、リフレクション メカニズムを通じて実装) に注入し、A をオブジェクト要求元に返して作業を完了します。

3. IOCの意義は何ですか?
IOC はそれ以上の機能を実装しませんが、その存在により、多くのコードを必要とせず、オブジェクト間の複雑な結合関係を考慮することなく、IOC コンテナーから適切なオブジェクトを取得でき、オブジェクトの信頼性の高い管理が提供され、開発の複雑さが大幅に軽減されます。

以上がSpring IOC と DI を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。