SeasarのDIに関するステキな説明分

CodeZineさんにステキな説明文を見つけました。

コンテナとコンポーネント


 まずはじめに、「S2Container」の「コンテナ」とはなんでしょうか。コンテナと聞くと、筆者は船舶や貨車に積む大きな鉄の箱をイメージします。S2Containerも「なにかを入れる箱」という意味では元の意味と通ずるところがあります。S2Containerにはコンポーネントを入れます。また、コンテナの中にコンテナを入れることもできます。S2Containerはコンテナやコンポーネントを管理します。


 では、「コンポーネント」とはなんでしょうか。コンポーネントは、ある1つの機能を持ちます。1つの機能は、1つのクラスで実装される場合もあれば、複数のクラスから構成されている場合もあります。ある機能を使いたい場合、その機能を持つコンポーネントをS2Containerから取り出して使用することになります。この時、その機能が複数のクラスから構成されている場合は、S2Containerは必要なクラスを持つコンポーネントを組み合わせた形で返してくれます。これが、S2ContainerにおけるDI(Dependency Injection)になります。


http://codezine.jp/r.x/rss/aid/495


すっきり!