..


スポンサーリンク

IoCとDI(制御と依存性注入の反転)

コントロールの 'S 反転 (IoC)フレームワーク自体にアプリケーションでフロー制御を移動するフレームワーク、の典型的な機能です。

のは、コンセプトを明確にする例を見てみましょう:あなたが作成した場合、GUIの APIを通して、 スイング 、プログラマはそのようなボタンを押したり、テキストの入力など、ユーザによってトリガされるイベント、のハンドラを実装する必要があります。 フレームワークは、の開閉窓などのアプリケーションフローを制御するために残されている。

コントロールは、フレームワークの開発者によって動かされているためこの種の動作は、IOCと呼ばれています

一度それが春でどのように使用されるIOCは、我々が見るものは明らかです。
すべてのアプリケーションは、所定の目標は、お互いに協力しなければならず、必然的に依存関係を形成している到達オブジェクトで構成されています。 通常、これらの依存関係は設定(通常、製造業者)に適しているコードによって解決されます。 我々はビデオストアを管理するためのクラスを実装することがあるとします。






 it.mrwebmasterパッケージ;









インポートはjava.util.ArrayList;







 java.util.Listをインポートする。









 {publicクラスVideoManager





  



プライベートDvdServiceのdvdService;





  



公共VideoManager(){



    



スーパー();



    



 / **



     



 *構成と依存関係の解決



     



 * /



    



 this.dvdService DvdServiceImpl =新しい();



  



 }





  



 <DVD> getAvalaibleDvdList公開リスト(){



    



 / **



     



 * DVDのリストを取得する



     



 * /



    



リスト<DVD> dvdList dvdService.getDvdList =();





    



 / **



     



見つけるためにDVDのリストを*ループ

 

     



 *可能なもの



     



 * /



    



リスト=新しいArrayList <DVD> availabeDvdListの<DVD>();





    



 {:(dvdList DVD DVD)用



      



 {(dvd.isDisponibile())場合



        



 availabeDvdList.add(DVD);



      



 }



    



 }





    



 availabeDvdListリターン;



  



 }

	





 }



この例ではクラスVideoManagerは、非レンタルDVDのリストを回復するのタスクを持っています。 リストは、リスト上のすべてのDVDのリストを取得するサービス(DvdService)、そしてサイクリングを使用して取得されたDVDが利用可能です。 クラスVideoManagerは、したがって、コンストラクタの中で解決されるオブジェクトのDvdService、に依存しています。

Diagramma Dipendenze

我々はSpringを使用していなかった場合、依存関係がスプリングによって解決されるので、我々は、クラスのコンストラクタでdipendezaのVideoManagerの解決を心配する必要があります。
春で、その後、IOCはコンフィギュレーションの依存関係の制御を反転させるために使用されます。 このような理由からそれは彼の有名なで、Martin Fowler氏による造語された記事 、時々同義語IoCのIDとして誤って使用される用語Dependecy注入 (DI)、。
DIの基本的なコンセプトは、依存関係の解決や初期化を行うために別のオブジェクトを持つことです。

以下のアセンブラクラス、クラスのDvdServiceを初期化するタスクを持っています。

Diagramma Assembler

Dependecy注射の3つのタイプがあります。

  • インタフェースの注入
  • セッターインジェクション
  • コンストラクタインジェクション
春では、我々は後で見るように、唯一のコンストラクタやセッターインジェクションを実装し、それは、オブジェクトファクトリとファクトリメソッドを介してオブジェクトを初期化して作成することも可能ですされています。

スプリングJavaのガイド
E -ラーニング
Linuxの(コース) Linuxの(コース)
オープンソースシステムへの完全なガイド。 49€から。
PHP(コース) PHP(コース)
動的なWebサイトを作成するためのフルコース。 49€から。
RubyとRuby on Rails(コース) RubyとRuby on Rails(コース)
RubyとRoRのと、ソフトウェアやWebアプリケーションを作成します。 39€から。
スポンサーリンク