DIとは?
状態:-
閲覧数:1,823
投稿日:2009-07-10
更新日:2017-10-19
英語表記
・Dependency Injection
依存性の注入
・オブジェクト生成時に他のオブジェクトを注入している形式
・クラス外でインスタンスを生成して、クラス外から引数として渡す
・コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターン
クラスの単体テストがしやすくする
コンポーネント間の関係
・インタフェースを用いて記述
コンストラクタ内でインスタンス生成を行わなくなる
引数として(Interfaceをimplementsしたクラスの)インスタンスを受け取るようになる
英語表記
・DI Container
・Dependency Injection Container
DI処理をコンテナの変数にまとめ、シンプルにする
・依存性を定義してコンテナという形で保管しておく
・そのコンテナを取り出すだけで依存関係を処理できるようになる
・新しいオブジェクトを作成する際、DI コンテナが自動的に依存をインスタンス化し、新しく作成されたオブジェクトに注入して、 依存を解決する
アプリケーションにDI機能を提供するフレームワーク
・「DI」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエア
DIコンテナを使用しないと?
・使用する度に毎回依存性のあるものを生成して注入しなければいけない
・Dependency Injection
依存性の注入
・オブジェクト生成時に他のオブジェクトを注入している形式
・クラス外でインスタンスを生成して、クラス外から引数として渡す
・コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターン
DI導入メリット
クラスの単体テストがしやすくする
DI実装
コンポーネント間の関係
・インタフェースを用いて記述
コンストラクタ内でインスタンス生成を行わなくなる
引数として(Interfaceをimplementsしたクラスの)インスタンスを受け取るようになる
DIコンテナとは?
英語表記
・DI Container
・Dependency Injection Container
DI処理をコンテナの変数にまとめ、シンプルにする
・依存性を定義してコンテナという形で保管しておく
・そのコンテナを取り出すだけで依存関係を処理できるようになる
・新しいオブジェクトを作成する際、DI コンテナが自動的に依存をインスタンス化し、新しく作成されたオブジェクトに注入して、 依存を解決する
アプリケーションにDI機能を提供するフレームワーク
・「DI」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエア
DIコンテナを使用しないと?
・使用する度に毎回依存性のあるものを生成して注入しなければいけない