Javaの勉強をしています。DIコンテナってなんですか?教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/02/04 12:23:23
  • 終了:--

回答(3件)

id:junkitch No.1

junkitch回答回数40ベストアンサー獲得回数02006/02/04 14:24:27

ポイント10pt

DI(依存性注入)とは、「オブジェクト間の繋がりを別に注入する」

ということです。どういうメリットがあるのかと申しますと、


o1 = new Object1();

o1.setValue(1);


なんていうソースを書いた場合、このソースを書いたクラスと、

Object1クラスの間にはクラスの依存関係が生じます。

もし、Object1クラスをObject2クラスに変更したい場合は、

ソース自体を書き直す必要があります。


そこで、DIコンテナに任せてしまおうという考えが登場します。

オブジェクト間の依存関係を別のところに定義しておいて、

生成や値のセット等を自動で行ってしまおう…ということです。


私の理解で少し書いてみましたが、不備もあるかもしれません。

本当に勉強しようと思うのなら、書籍で調べてみるのも手です。

http://www.amazon.co.jp/exec/obidos/ASIN/4839917779/249-2924466-...

「Light Weight Java」という本ですが、とてもよい本です。

DIの説明から、JSF/Hibernate/Springまで幅広く扱っています。

私個人としてはとてもお勧めの本なので、御一読されてみては?

id:fujinoko No.2

fujinoko回答回数129ベストアンサー獲得回数02006/02/04 13:00:48

ポイント20pt

http://www.sharedvine.com/tech/spring/

SHAREDVINE - JAVAプログラミング

これでどうでしょうか

id:jclew

読みました1つめのサイトは図が多くとてもわかりやすかったです。ありがとうございました。

DIコンテナを使うと依存関係を完全に排除することができる理由がわかりません。さらにわかりやすく説明しているサイトがあれば追加でお願い致します。

また、ただサイトの引用だけでなく、あなたなりの説明を少し加えていただけるとさらに嬉しく思います。次の回答者の方はそのあたりも注意していただけると嬉しいです。

回答ありがとうございます。

2006/02/04 13:16:08
id:tyousann No.3

tyousann回答回数1982ベストアンサー獲得回数542006/02/04 13:09:28

ポイント30pt

DIコンテナの DI とは、 Dependency Injection(依存性の注入) の略です。

軽量コンテナとも呼ばれます。

http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20050216/156274/

Java開発を変える最新の設計思想「Dependency Injection(DI)」とは:ITpro

「DIする」,「インジェクション(注入)する」──新しい技術に敏感なソフトウエア開発者たちの間で使われている言葉である。DIとは,「軽量コンテナ」を実現する新しい設計思想Dependency Injection(依存性注入)の略称である。同じ概念をIoC(Inversion of Control,制御の反転)と呼ぶ場合もある(詳細は後述)。「DIする」と言えば開発者の間では通用するぐらいに,この設計思想は注目されているのだ。

id:jclew

よくわかりました。ありがとうございました。

2006/02/09 21:55:57

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません