5分鐘玩轉依賴注入和控制反轉

2021-09-25 05:10:13 字數 2108 閱讀 1209

一:例項:傳奇遊戲代言

如果你是遊戲開發商,在初期的時候,秀逗的你為了讓自己的遊戲讓更多人看到了解,最後進行註冊,可能會去請許多明星來進行代言。第一次,你找了angelabay代言,沒辦法,人家火呀。於是發生了這樣的場景。

傳奇:你好,我想讓你給我的遊戲代言,因為您的形象特別好呢。

angelababy:ok,木有問題,錢多錢少也不是問題,只要你肯砸錢讓我經常在網上露臉就行。

傳奇:哇塞,真是遇到好人了,一切聽您安排。

angelababt:各單位無條件服從我的命令(注意,此時的控制權在angelababy手中),於是各種代言詞開始被pass,重寫,pass,重寫,最終經過長達半年的選詞,代言完成。

開發商事後感悟:雖然麻煩,耗費了大量資金和時間,但是真值!薄利多銷的道理我還是懂得的,所以,我要再找乙個明星代言!

於是我們的春哥陳小春被選中了,同樣的流程,長達半年的時間過去了,代言形象深入人心呀!

然而傳奇老闆這次似乎有點感悟了,為什麼明明是雙贏的事,自己卻被牽著鼻子走呢?

這一夜,傳奇老闆做了乙個夢,他夢到了賈伯斯!賈伯斯告訴他,直起腰板,你是金主,你說的算!把控制權要回來!

於是,控制反**生了,傳奇老闆瘋了一樣大刀闊斧的修改經營模式。所有人聽我號令,劇本,代言詞先準備好,哪個明星願意來,就必須給我老實的讀劇本!

於是發生了接下來的一幕,代言大戶聰哥來了,劇本的讀的很6,短短一天的時間,代言完成,傳奇老闆站在窗外,深吸一口氣:控制反轉真強大呀,我要弄乙個明星庫,給他們編號。於是大量明星的資訊被收錄進了明星庫,而這個明星庫就是我們說的容器,ioc容器!

傳奇老闆:這下萬無一失了,我把這些明星資訊注入到明星庫里,有一天,我要打敗麻花騰!

故事結束。

沒錯,控制反轉和ioc容器就是這麼回事,小夥伴,有感覺了沒有,好,開始講概念。

2.控制反轉和ioc容器

官方解釋,雖然我也看不懂,但是沒辦法,複製貼上過來,勸你還是殭屍讀一樣的過一遍。

控制反轉(ioc),是物件導向程式設計中的一種設計原則,可以用來減低計算機**之間的耦合度。其中最常見的方式叫做依賴注入(di)

ioc容器就不多解釋了,就是個大盒子。

3.傳奇案例,**實現之不使用依賴注入

首先明確一點,傳奇依賴於明星代言,我們先建幾個明星類。

public class angelababy

}public class chenxiaochun

}

接著是傳奇類:

//此時是baby代言

public class game

}//此時是春哥代言

public class game

}

4 傳奇案例,**實現之使用依賴注入

這次我們會先建立乙個明星庫,也就是ioc容器,注意,這個容器我們會選擇介面的方式來實現,你也可以弄個實體類基類來做ioc,前提是你不嫌麻煩。

//這就是最原始的容器,你沒有看錯,明星都聽我的號令,就給你們乙個開口說話的權力,愛幹不幹

public inte***ce istars

接著,我們要開始向容器裡注入明星資訊了

public class angelababy : istars

}public class chenxiaochun : istars

}

到了這裡,我們的容器就ok了,接下來是遊戲類了。

public class game

//重寫構造,將介面當作引數,再次賦值給介面容器,他倆看似一樣,其實不然,因為屬性不會變,

引數卻是會改變哦

public game(istars stars)

//遊戲裡屬於自己的代言方法,方法就是讓明星沒毛病說兩句

public void daiyan()

}

至此,依賴注入完成了,有強迫症的你可能會問,怎麼呼叫呢?

**在此:

class program

}

喜歡點讚,感謝!

回過頭來想想,突然感覺**不對。。。。5分鐘讀完。。。好像有點勉強呢。

控制反轉 依賴注入和控制反轉

依賴注入 di 和控制反轉 ioc 基本是乙個意思,因為說起來誰都離不開誰。簡單來說,a依賴b,但a不控制b的建立和銷毀,僅使用b,那麼b的控制權交給a之外處理,這叫控制反轉 ioc 而a要依賴b,必然要使用b的instance,那麼 通過a的介面,把b傳入 通過a的構造,把b傳入 通過設定a的屬性...

依賴注入和控制反轉

還是從上次機房合作驗收說起,其中乙個特別厲害的師姐提到了依賴注入和控制反轉,剛剛聽到這個的時候,感覺很熟悉,就是不知道在 看到過,想起了公尺老師說的那句話,不怕不知道,就怕不知道 不怕不知道它,就怕遇到了不知道它是什麼意思,我可是上公升到了不知道的第二個階段。廢話不說了,直奔主題吧。記得在哪見過,就...

依賴注入和控制反轉

本文 ioc inversion of control 控制反轉 di dependency injection 依賴注入 要想理解上面兩個概念,就必須搞清楚如下問題 1 參與者有誰 一般有三方參與者,乙個是某個物件 乙個是ioc di容器 另乙個是物件的外部資源。2 誰依賴於誰 當然是某個物件依賴...