DI
読み方:ディーアイ
別名:依存性注入,依存性の注入
DIとは、プログラミングにおけるデザインパターン(設計思想)の一種で、オブジェクトを成立させるために必要となるコードを実行時に注入(Inject)してゆくという概念のことである。
DIにおいては、オブジェクトが他のオブジェクトを利用するためのコードを初めから結合させるのではなく、オブジェクトの実行時に呼び出すようにしている。このとき、オブジェクト間の結合が「依存性(Dependency)」と呼ばれる。オブジェクト成立のための情報を外部に分離させておくことによって、開発効率やソフトウェアの開発サイクルを向上させることができるとされる。
DIは、「DIコンテナ」や「軽量コンテナ」などと総称される小規模なソフトウェアの登場とともに注目を集め始めた。軽量コンテナの代表的な製品としては、オープンソースで開発されている「Spring Framework」や、日本発の「Seasar2」などがある。なお、DIの概念は軽量コンテナの登場以前にも存在し、もっぱらIoC(Inversion of Control)と呼ばれてきた。
参照リンク
Spring Framework - (英文)
依存性の注入
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/05/27 04:32 UTC 版)
依存性の注入(いぞんせいのちゅうにゅう、英: Dependency injection)とは、あるオブジェクトや関数が、依存する他のオブジェクトや関数を受け取るデザインパターンである。英語の頭文字からDIと略される。DIは制御の反転の一種で、オブジェクトの作成と利用について関心の分離を行い、疎結合なプログラムを実現することを目的としている。
- ^ “Dependency Definition & Meaning - Merriam-Webster”. Merriam-Webster. 2022年9月3日閲覧。 “: something that is dependent on something else especially : a territorial unit under the jurisdiction of a nation but not formally annexed by it”
- ^ 『Seasar2で学ぶ DIとAOP アスペクト指向によるJava開発』技術評論社、2006年8月9日。
- ^ 『オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方』技術評論社、2016年9月2日。
- ^ a b c d “Java開発を変える最新の設計思想「Dependency Injection(DI)」とは”. ITPro (2005年2月18日). 2014年2月20日閲覧。
- ^ “Java EE 6: Understanding Contexts and Dependency Injection (CDI), Part 1”. オラクル (2010年5月25日). 2014年2月20日閲覧。
- ^ Microsoft.Extensions.DependencyInjection Namespace | Microsoft Docs
- 1 依存性の注入とは
- 2 依存性の注入の概要
- 3 概要
- 4 DIコンテナ
依存性の注入
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/11 01:34 UTC 版)
「オブジェクト指向分析設計」の記事における「依存性の注入」の解説
依存性の注入 (dependency injection) の基本的な考えは、あるオブジェクトが何か別のオブジェクトへの参照をもつことに依存しているのであれば、依存される側のオブジェクトを依存する側のオブジェクトに「注入」する、ということである。例えば、データベース接続を表現するオブジェクトが必要なオブジェクトがあるのであれば、そのオブジェクト内でデータベース接続オブジェクトを生成するのではなく、そのオブジェクトのコンストラクタ (新たなオブジェクトを生成する際に呼び出される手続き) への引数 (パラメタ) として、データベース接続オブジェクトをそのオブジェクトに渡すのである。
※この「依存性の注入」の解説は、「オブジェクト指向分析設計」の解説の一部です。
「依存性の注入」を含む「オブジェクト指向分析設計」の記事については、「オブジェクト指向分析設計」の概要を参照ください。
- 依存性の注入のページへのリンク