天天看點

依賴注入

定義:開發過程中,如果用戶端程式依賴某個對象,我們常常對它進行一次抽象,形成抽象類,接口,這樣用戶端就可以擺脫鎖依賴的具體類型。

其實也是裡氏替換原則和依賴倒置原則

廢話不說先看一個例子

這個例子看似完美,也符合依賴抽象的原則,但是能不能再完美點,用戶端不需要知道TimeProvider類型,就可直接調用他的類型呢,選擇方式把ITimeProvider的執行個體傳遞給用戶端程式,這個對象被稱為Assembler 彙編

那麼這樣子用戶端隻需要知道接口和Assembler即可

看看用戶端調用

這樣子就達到更高層的抽象,使得用戶端調用無需知道具體類型就可以實作執行個體,這種叫做依賴注入,注意Assembler不是依賴注入,他隻是注入時候常用的一種手段

注入的三個角色

客戶對象,Assembler,抽象類型 之中兩個不能變,變的隻有Assembler,它是負責組裝的,如果注入過程還需要修改用戶端,那麼就違背的注入的原則