2009年11月24日火曜日

DI 【依存性注入】

DIとは、オブジェクト間で依存性のあるコードを実行時に注入するという設計思想。

 従来のEJBに採用されたEntity Beanの使いにくさを解消するため、「軽量コンテナ」と呼ばれるアプリケーションサーバ群が登場した。軽量コンテナの例として、最も利用者の多い「Spring Framework」や、簡素な「PicoContainer」、アクセスと結合が容易な「HiveMind」、国産の「Seasar2」などがある。Java開発を変える最新の設計思想といわれ、ソフトウェアの開発サイクルを大幅に改善すると期待されている。

 オブジェクトが他のオブジェクトを利用するコードを「依存性」と捉え、これらの依存性をもったコードを実行時に注入するため、依存性注入と呼ばれる。従来から同様の思想は存在し、IoC(Inversion of Control:制御の反転)と呼ばれていたが、軽量コンテナの登場により、著名なソフトウェア設計コンサルタントであるThoughtWorks社のMartin Fowler氏が命名した。

 DI思想による軽量コンテナはEJBの使いにくさを解消するために登場したもので、EJB 3.0で正式に採用された。Spring Frameworkの.NET版である「Spring.NET」や「NSpring」も登場している。

0 件のコメント:

コメントを投稿