什么是依賴注入:
依賴注入就是new好了依賴的對象注入進去,而不是在類中顯式的new一個依賴的對象
依賴注入的中心思想:
高層模塊不應依賴于低層模塊,他們都應該依賴于抽象
抽象不依賴細節,細節依賴抽象
依賴注入的分類:
- 構造器注入
- 屬性注入
- 方法注入
話不多說,直接上例子(用類圖講解):
舉例一個游戲,丈夫可以親自己的妻子
Paste_Image.png
1.1 經理說要改需求了:更改需求:男的也可以親男的(上邊是不用設計模式,下邊是用設計模式)
Paste_Image.png
Paste_Image.png
1.2 經理又說游戲很火,但是需求不夠豐富,還要改:更改需求:男的也可以親自己的伴侶(包括貓和狗;上邊是不用設計模式,下邊是用設計模式)
Paste_Image.png
Paste_Image.png
Paste_Image.png
這個例子可以很清楚的看出,如果需求不斷的更改且一個類依賴多個類且依賴他們的抽象類,這樣會導致測試很難而且代碼很難維護。當使用了依賴注入設計模式后,會極大的降低耦合度,方便測試。但是,在實際應用中,我們通常需要實現一個容器去管理和實現依賴對象的注入,比如spring,xml等方式。