DIとは?
状態:-
閲覧数:1,430
投稿日: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コンテナを使用しないと?
・使用する度に毎回依存性のあるものを生成して注入しなければいけない
Twitter検索結果。「DIコンテナ」に関する最新ツイート
勢いでオレオレ ORM と オレオレ DI コンテナの奇跡のフュージョン 2023/02/04 20:10
もうDIコンテナ無しじゃ生きていけない 2023/02/04 19:35
そんなにサーバー機能ないのに DI コンテナも追加したい欲…
後からにしよう… 2023/02/04 18:44
JR貨物コンテナ弁当 第2弾? 明石の鯛めし編
幸せの黄緑コンテナとして親しまれているそうで。おそらく一度も見た事ない。容器を洗って小物入れとして使用可能 https://t.co/qZYs4vkt5Q 2023/02/04 17:38



DIコンテナベースのフレームワークの原理は概ねこれ。 2023/02/03 11:17
Ruby 使いだったのでDIコンテナをあんまり理解出来てなかったが、遂に少しずつわかってきた 2023/02/02 13:17
@ktz_alias ああー、DI と DIP と DI コンテナの違い、連載のネタに良いかもです。ありがとうございます! 2023/02/02 13:09
@t_wada 元トピとは外れるけど、DIコンテナ = DIとすると言説もいや〜んな感じ 2023/02/02 12:55
DIコンテナでInjectするクラスで、同じDIコンテナから別のオブジェクトをInjectさせるのはダメなんかな
うまいこといかん
#dotnet #CSharp https://t.co/tatezsJhxN 2023/02/02 00:29

Java世界におけるDIコンテナとインジェクション(Springならオートワイヤリング)は、割とわかりやすいよね。 2023/02/01 14:19
つまり、サービスコンテナつーのは俺らにとってのDIコンテナでええんか? 2023/02/01 14:17
DIコンテナ、グローバル変数を使うのが恥ずかしいから使ってる説
※個人の偏見です 2023/01/31 11:19
DIコンテナ
初めて聞いたから最近の技術なのかと思ったんだけど、普通に大昔から存在していて、俺が無知なだけだった 2023/01/31 09:14
現場のコードがクラス同士で依存しまくってたからDIコンテナ作った。
めっちゃ勉強になったな。
#駆け出しエンジニアと繋がりたい 2023/01/27 19:08