DIを利用したプログラムを作成する場合、コンポーネント間の関係はインタフェースを用いて記述し、具体的なコンポーネントを指定しない。具体的にどのコンポーネントを利用するかは別のコンポーネントや外部ファイル等を利用することで、コンポーネント間の依存関係を薄くすることができる。依存関係がプログラムから外部に取り除かれることで、以下のようなメリットが発生する。DIの種類.プログラムに依存性を注入する方法としては、以下のような手法が存在する。例.DIの例として、以下にJavaによるDIを用いない場合と手動でのDI、ならびにDIコンテナをイメージした自動でのDIのサンプルコードを示す。初めに、一連のサンプルで用いる各コンポーネントのインタフェースを、株式売買を例題にして示す。DIを用いない状態.以下はDIを用いない場合の実装例である。....//omitted手動でのDI.上記のコードを、手動でDIを行うようにリファクタリングすると下記のようになる。自動的なDI.DIコンテナを用いることで、依存性の注入をコード上に直接記述せず、自動的に行うことが可能である。こうした手法を用いる場合、依存性は外部のXMLファイルやメタデータにて定義する。上記のコードを、XMLを用いるDIコンテナを使用するようリファクタリングした例が下記である。...//omittedDIコンテナには数多くの種類があり、上で示した例はそのごく一部でしかない。実際にはDIコンテナごとに様々な手法が用いられている。DIを用いた単体テスト.//このテストでは使用しない//このテスト専用の依存性を指定するため、DIコンテナに直接登録しているHTML.super();DIコンテナ.DIの機能を提供するフレームワークはDIコンテナと呼ばれる。主なDIコンテナとしては、下記のようなものが存在する。.NETIBM形式フロッピーIBMフォーマット日本企業情報日本企業情報株式会社(にほんきぎょうじょうほう)は、日本のサービス業。学校法人啓明学園学校法人啓明学園(がっこうほうじんけいめいがくえん)は東京都昭島市に本部を置く学校法人。キリスト教主義・プロテスタント自由主義神学。概要.