国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#對觀察者(Observer)模式的支持(一)

2019-11-17 04:09:44
字體:
來源:轉載
供稿:網友

首先先讓我們了解一下什么是觀察者模式,觀察者模式是對象的行為型模式,又叫依賴/從屬者模式、發布-訂閱模式、源-監聽模式。觀察者模式:定義了對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新(GOF)。

如我們的項目中有一個郵件系統,當發送郵件時可能需要發送手機短信和RTX信息通知郵件接收者,這時就可以用觀察者模式進行設計,如果以后還需要增加第三種通知方式,那么我們的系統會很容易的把新通知方式加入進來。觀察者模式在C#中應用的也很多,最常見的就是我們用到各種控件的事件監聽機制。

觀察者模式的實現中有四種類型的參與者,分別:

1、  抽象主題/目標(Subject)

它可以有任意多個的觀察者,并在一個集合對象中保存對觀察者的引用,并提供增加和刪除觀察者對象的接口,一般用一個抽象類和接口實現。

2、  抽象觀察者(Observer)

為所有的具體觀察者定義的一個更新接口,當主題/目標發生變化時,通知具體觀察者更新自己。通常用一個抽象類或接口實現。

3、  具體主題/目標(ConcreteSubject)

將有關的狀態存入具體觀察者對象,當它的狀態發生改變時,向所有注冊的觀察者發出通知。具體主題/目標又被稱為被觀察者。

4、  具體觀察者(ConcreteObserver)

維護一個指向具體主題/目標的引用,并存儲與具體主體/目標一致的相關狀態,并實現一個具體的抽象觀察者的更新接口,以使自身狀態與主題/目標狀態保持一致。

       我們用觀察者模式實現一個簡單的郵件發送系統,并且發送郵件的同時發送手機短信和RTX消息通知郵件接收者。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳西县| 惠安县| 罗田县| 万州区| 沅陵县| 达拉特旗| 武安市| 太仆寺旗| 仪征市| 邢台县| 乌审旗| 宜川县| 泾阳县| 科技| 贵州省| 重庆市| 北流市| 湘阴县| 措美县| 马鞍山市| 浪卡子县| 伊金霍洛旗| 沈阳市| 临漳县| 虹口区| 江阴市| 南郑县| 长子县| 通海县| 财经| 东山县| 赣榆县| 轮台县| 西贡区| 健康| 鄂托克前旗| 乌苏市| 绥德县| 巴马| 陇西县| 霍州市|