スプリングフレームワークは、DIの噴射基本ケースを依拠します

DI依存性の注入は、依存性の注入は
、継承:です。
従属メンバ変数、:持っています。
例:

    class Teacher { 
     private Phone phone; //Teacher 类依赖Phone 类
     ...
     public Teacher(){	
     this.phone = new Phone();
     } 

}
このコードは、次の質問で見つけることができます:
(1)私は、このような新しい電話番号(文字列名)などの電話発生手段を、変更したい場合は、電話番号を初期化するために、私はコードブロックの教師を変更するつもりだ、この時間を。
(2)あなたが別の電話オブジェクト、教師に大きな影響をテストする場合は、初期化電話がコンストラクタ教師の中で死んで書かれていたので、
依存性の注入上記は、ハードのinit方法を初期化するために、コンストラクタに直接依存します欠点は、2つのクラスが十分に独立した、便利なテストではないということです。次のように我々はINIT別の方法は、あります:

パブリッククラス教師{
...
電話電話。
...
公共先生(電話電話){
this.phone =電話。
}
}

上記のコードは、我々はコンストラクタにパラメータとして渡されたオブジェクトに電話します。電話に外部の先生のコンストラクタを呼び出す前に、オブジェクトを初期化されます。このように自分自身のイニシアチブに依存し、道の対外依存度を通過する非初期化され、我々は、依存性注入と呼ばれます。
:今、私たちは1の存在下で、上記の二つの問題は良い解決策であることを見つけ、単に依存性注入は、2つの主な利点がある
(1)デカップリング、依存間のデカップリングを。
(2)それが切り離されている、特にモックをテスト、ユニットテストを実行するのが便利です。
依存性:オブジェクトが他のオブジェクトを使用する必要が
注入:方法注入の三種類が通常あり、コンストラクタ注入インタフェース注射、注入法、例えば、別のオブジェクトインスタンスはセッターメソッドを介して提供さがある上に。

図1に示すように、ターゲットクラスは
BookServiceをインタフェースと実装クラスが作成され、
インタフェースおよび実装クラスのBookDaoを作成した
書き込みXMLファイルに
書き込みテストクラス

インタフェースと実装クラスのBookDao
ここに画像を挿入説明
ここに画像を挿入説明

インタフェースと実装クラスのBookServiceを
ここに画像を挿入説明
ここに画像を挿入説明
XMLファイルの
ここに画像を挿入説明
テスト
ここに画像を挿入説明
結果
ここに画像を挿入説明
ここに画像を挿入説明

公開された27元の記事 ウォンの賞賛1 ビュー1229

おすすめ

転載: blog.csdn.net/qq_40484416/article/details/102480911