「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次  †
概要  †
DI  †
- DI: Dependency Injection
 
- 依存性の注入
 
DIとは?  †
依存性を無くすために、動的に動作を注入する。
依存性  †
- あるクラスに、固定の定数、変数、インスタンスが入っている状態
 
- つまりそのクラスは、その定数、変数、インスタンスに依存している。
 
注入  †
- そのクラスの外から定数、変数、インスタンスを設定する。
 
- これにより、動的に動作を変えられるようにする。
 
ユースケース  †
- モックの差し替えなどを実現し、テストを容易にする。
 
- フレームワークの差し替えを実現し、特定のフレームワークへの依存性を減らす。
 
問題点  †
「IoC」や「AOP」自体にも言えることになるが、
同時に全体として協調動作させるときに複雑さが増す。
.NETにおけるDI  †
- Spring .NETによりサポートされていた模様。
 
詳細  †
DIの種類  †
プログラムに依存性を注入する方法としては、以下のような手法が存在する。
interface注入  †
注入用のinterfaceを定義して注入を行う方法
setter 注入  †
setter メソッドを定義して注入を行う方法
constructor注入  †
constructorを定義して注入を行う方法
コンテナー  †
- 依存関係を作成する専用のクラス。
- 要求された依存関係をインスタンスの作成で行う。
- 依存関係はハードコーディングではなく、構成により宣言。
 
- 依存関係のある型のインスタンスを提供するファクトリ。
 
 
- 依存関係だけでなく、ライフサイクルも管理する。
 
 
- 以下のように呼ばれる。
- 制御の反転 (IoC) コンテナー
 
- 依存関係の挿入 (DI) コンテナー
 
 
参考  †
Qiita  †
Tags: :プログラミング, :.NET開発