[オブジェクト向けプログラミング入門-インフラストラクチャ]依存とDI


に頼る


他のコンポーネントを使用して
  • 機能を実現
  • 依存例:オブジェクトの作成、メソッドの呼び出し、データの使用
  • 依存
  • は、変更が伝播する可能性があることを意味します.
  • 依存ターゲットが変更される可能性が高い
  • 例:呼び出しメソッドのパラメータ変更
  • 例:追加タイプ
  • 、呼び出し可能メソッド

    ループ依存

  • サイクル依存->可能な変更チェーン伝播
  • クラス、パッケージ、モジュールなどのすべてのレベルのループなし
  • 依存する相手がたくさんいたら?
    依存する対象が少なければ少ないほど良い(私が変わる可能性は小さい)

    依存オブジェクトマルチタイム1、機能マルチタイム

  • は1つのクラスで多くの機能を提供しています.
  • 各機能は、異なるターゲット
  • に依存する可能性がある.
  • 機能の変更は、他の機能
  • に影響を与える可能性があります.

  • 機能分離を考慮する

  • グループ化(複数の依存項目を1つの機能に組み合わせることができるかどうかを考慮)
  • 依存オブジェクトを直接作成すると?
  • がクラス変更を生成すると、依存コードも変更されます.
  • 抽象で言及された
  • 依存オブジェクトは直接作成されません.
  • ファクトリ、コンパイラ
  • 依存注入
  • サービスロケータ
  • 依存注入


  • 外部から依存オブジェクトを注入
  • を使用する作成者またはメソッド注入(作成者およびメソッド伝達オブジェクトを使用して初期化コードで行う)
  • .

  • 通常、アセンブリを使用して依存オブジェクトを作成および注入します.
  • 組立機
  • アセンブリ処理オブジェクト作成、依存注入
  • 例:スプリングフレーム
  • DI
  • の利点
    -의존 대상이 바뀌면 조립기(설정)만 변경하면 됨(?)
    - 의존하는 객체의 실제 구현이 없어도 대역 객체를 사용해서 테스트 가능
    習慣使用
  • DI
  • 依存オブジェクトは、注入
  • のためにコードを記述することに慣れている.