天天看點

【轉發】什麼時候該用委托,為什麼要用委托,委托有什麼好處

好多人一直在問:什麼時候該用委托,為什麼要用委托,委托有什麼好處....

看完下面的文章你将茅塞頓開..(看不懂的直接TDDTDS)

概念雖然我不喜歡講太多

我們直接先來YY 個場景:我很喜歡打遊戲,但運氣不好每次打遊戲都會被主管看到,朱老闆不喜歡他的員工在上班的時

間打遊戲,是以朱老闆就跟主管說:以後員工在打遊戲,你就扣他20塊錢.

這其實就是一個委托,朱老闆委托主管一旦發現員工打遊戲,就做一件事情.

程式該怎麼寫呢?

至少有2個類吧,主管與員工,主管有個方法扣錢,員工有個方法玩遊戲,那麼開始動工了

 員工類:

主管類:

MIan方法大概這麼寫就行了:

運作,果然結果是對的,看來做為程式員我還是比較低調的..寫出來結果很正常,也不沾沾自喜..

員工:開始玩遊戲了..

員工:CS真好玩,哈哈哈! 我玩...

主管:上班時間膽敢玩遊戲

主管:看看你小子有多少薪水:8000

主管:我開始扣薪水...

主管:扣好了.

主管:看看你小子薪水剩餘:7980

下面我們簡單的分析下這個程式:

1:在建立主管類之後才能建立員工類,耦合性太高,也就是說你要建立個員工,必須要先建立個主管..

2:如果場景發生以下變化,我要讓經理代替主管,我們不得不修改員工類,并增加經理類.

這樣看來這段程式設計的并不好,我們不妨來考慮下事件(特殊的委托)來實作

必須要定義一個委托,就是讓主管監視員工,然後員工類裡要有個事件(員工也是激發該事件的對象),主管執行事件

主管類就要實作一個方法,這個方法與委托的傳回直一樣,參數一樣就行了,給委托來調用的.:

那麼調用就變的簡單了

輸出:

2180

2160

總結:

      當然,不使用委托和事件我們仍然可以設計出解耦的類,然而卻會增加很多的類、接口以及關聯等等,增加了代碼量和程式的邏輯複雜性,而在.net裡利用委托和事件我們隻需少的多的代碼來實作。

學習交流群:364976091

繼續閱讀