.NET簡談設計模式之(觀察者模式)

來源:互聯網
上載者:User

觀察者模式想必搞程式開發的都聽說過,今天我也來簡單的總結一下本人在程式開發過程中是怎麼使用觀察者模式的;希望給大家帶來點新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,最求技術的人,始終都是為了技術而學技術,目的只有一個一起最求技術的最高境界;

觀察者模式是設計模式裡經常被用到的一種,什麼叫觀察者模式,字面理解就是一個或多個對象觀察某個對象這種觀察是有目的地,當被觀察者發生某種事件時能準確的反饋到外界,通知大家你發生了什麼;尤其是在今天物件導向編程的不斷成熟,什麼都講究抽象將重複勞動省到最少,方法成員都以類為容器封裝;這是一種好的編程規則,就好比我們所生存的大自然壞境一樣,汽車與人都是獨立的生存個體,大家互不干擾,我不需要知道我存在的意義,存在的意義是對別人而言;

進入主題,上面剛才講到了汽車與人,打個比方當我們乘坐公交車的時候,我並不認識路我需要車到的時候通知乘客你到了哪個站,我們好下車;在我們做開發的時候經常會遇到這種情況,我要某個按鈕被滑鼠點擊了之後彈出一個文字框出來,等等;繼續汽車與人的比方,當汽車到站後通過什麼方式通知大家你到某某站了呢,這就涉及到汽車這麼一個實體是否具有到站事件,如果沒有可能他永遠都不會聽,請看圖一:

圖上是一個汽車和四個乘客實體圖,當汽車到達某個站的時候應該告訴乘客到了哪個站了讓乘客判斷一下是否是自己要下的站,請看圖二:

圖上是汽車到了網站1時通知乘客,並將到站的資訊傳遞給乘客讓乘客判斷是否下車,如果某乘客要下車可以通知駕駛員我要下車,請看圖三:

乘客判斷訊息是否是自己要下的站,如果是發出訊息給汽車駕駛員,我們這裡把駕駛員和汽車當成一體的由汽車為統稱;汽車接收到乘客的下車資訊後開啟車門讓乘客下車;我們只要把圖的資訊落實到代碼上就OK了,請看代碼圖:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.