天天看點

依賴注入控制反轉

依賴注入、控制反轉,這兩個詞天天用,但屬于用了很多年真想講出來不太好表達那種。​

一、依賴注入

依賴注入,就是把底層類傳入上層類,三種注入方式

依賴注入控制反轉

 通過具體例子來體會二者的差別:“人與身份證的依賴關系”适合采用Setter注入,因為人不是一出生就有身份證,而是到了法定年齡才有,用構造函數注入表達的語義與此相違背。相反“人與父母的依賴關系”則适合采用構造函數注入,因為親子關系是從人一出生就建立的,用Setter注入必然使得對象建立後有一段時間處于非法狀态,按契約式設計的術語即破壞了對象的不變量(invariant)。

二、控制反轉

控制反轉就是将建立對象的控制權反轉過來由容器建立,強調的是一種能力和思想。

可能反轉不是中國人的文法習慣,聽着很别扭,可能改成“”取消“”更好了解。

繼續閱讀