DIとは
Intro
- この記事をサマっただけ
DIとは
- Dependency Injection(依存性注入)
- 「依存性」とか言ってるが、実際はDependencyとはオブジェクトのこと。
- デザインパターン
どのようなデザインパターン?
- 外からオブジェクトを注入する。
- 関数やクラス内で、インスタンスをnew()で生成する場合、関数やクラスはインスタンス(の元のクラス)の開発が完了しないと、正常に動作しない。
- インスタンスの開発を待たずに、関数やクラスを使いたい場合に、インスタンスを関数やクラスの外で作り、関数やクラスに何らかの方法で注入する。
-
何らかの方法とは
- コンストラクタの引数としてインスタンスを入れる(コンストラクタインジェクション)
- setterの引数としてインスタンスを入れる(セッターインジェクション)
- 関数の引数としてインスタンスを入れる(インターフェースインジェクション)
- 関数の引数としてインスタンスが使えるように、関数を修正する必要がある
-
メリット
- 関数やクラスの単体テストに、インスタンスのnewの成否が影響しなくなる。
- テストにはインスタンスのモックを使う
- 関数やクラスの単体テストに、インスタンスのnewの成否が影響しなくなる。
-
しかし、例えばコンストラクタインジェクションすると、コンストラクタの引数が追加されたりしたら、インジェクション先全てで修正する必要があり、大変。
- そこでインスタンスの生成を別の場所で一括で行う。その別の場所のことをDIコンテナと呼ぶ。
Author And Source
この問題について(DIとは), 我々は、より多くの情報をここで見つけました https://qiita.com/azaraseal/items/da53b7db60e4e0781843著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .