Dependency Injection

Dependency Injection(依存性を注入する)パターンというものがあって、それをServletコンテナ用に実装したフレームワークを、DIコンテナというのか。
一つ一つのオブジェクトを疎に結合するためのパターンの一つらしい(別にらしいをつける必要もないけど)。
オブジェクト(1度作成したプログラム)の再利用という考え方はソフトウェア業界が夢見る目標のようなものだと感じている。
構造化分析 -> オブジェクト指向
構造化プログラミング -> オブジェクト指向プログラミング
不完全な人間が完璧を求めて進化してゆくようなものだ(この例えは馬鹿らしいけれど)
話戻して、有名どころのDIコンテナといえばSpringやSeasarなどがある。
DIコンテナというのは元々、J2EEの仕様の複雑さ(特にEJB)から、逃れるために作られたものみたいだ。Seasarのキャッチコピーはたしか、J2EEの解体と再構築だったような気がした(優しさと易しさだっけ?)
そのためDIコンテナを、一般的なJ2EEコンテナと比較した言い方で、軽量コンテナとも言うらしい。
しかし、Springを調べてみると、軽量という言葉からは想像しにくいほど、色々と機能ががっしりあったりして、あれ?という印象を受けたりもする。