簡單解釋什麼是 依賴注入 和 控制反轉
2017-07-09html
關於 依賴注入 與 控制反轉 的概念有些人以爲很難理解,最近在給別人講這個概念的時候梳理了一個比較好理解的解釋,並且我認爲非技術人員也應該能聽的懂,所以分享給你們,但願下次你在給別人講的時候也能講的明白。htm
其實 依賴注入 和 控制反轉 說的是同一件事情,只是站的角度不一樣而已。對象
咱們就拿超人和小怪獸的事情來作類比對象。get
地球受到了威脅,不斷有小怪獸來想要破壞地球,每來一個小怪獸咱們就須要找一個超人去對付他,一個超人確定是不夠的,由於每次來到小怪獸都是不同的,他們所具備的能力也是不同的。io
所以咱們必須找到合適的超人去對付他,最壞的狀況是每來一個小怪獸咱們就要找一個或者製造一個新超人,那麼來十個小怪獸,咱們就要製造十個,來百個就要製造百個,來千,來萬,來億咱們就要製造相應的超人,而大部分超人只能用一次。依賴注入
爲了解決這個問題咱們引入依賴注入和控制反轉的概念,咱們將超人和超能力分開,獨立的超人和獨立的超能力,當一個小怪獸來的時候咱們找到超人,將相應的超能力給予他,讓他去消滅小怪獸。im
這樣的話咱們只須要幾個超人就行了,咱們再也不須要製造超人,而是研究如何製造更多更好的超能力給超人使用。技術
超能力和超人再也不是強依賴關係。超能力是由外部給予超人的,超人和超能力有依賴,可是這個依賴是外部給予,所以咱們能夠說超能力是由外部注入給他的,因此這就叫 依賴注入。分享
而反過來講,超人具備何種超能力不是他內部自身控制的,而是由外部控制的,至關於將超能力具備何種功效交給了外部,外部來決定超人該有的超能力,因此超能力的控制權被由自身控制反轉爲外部控制,這被稱爲 控制反轉。注入
這就是關於 依賴注入 和 控制反轉 的個人比較好理解的解釋。它能較好的解決對象與對象之間的強耦合問題,同時也能作的按需使用按需加載。
順便說一下,鋼鐵俠和蝙蝠俠更受歡迎的緣由我認爲就是由於他們的超能力是外部給予的,而非自身的,所以能夠不斷有新的超能力給他們使用,所以也更有看點和新鮮感。
原文轉載自簡單解釋什麼是 依賴注入 和 控制反轉