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

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

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

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

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

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

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

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

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

2、  抽象觀察者(Observer)

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

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

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

4、  具體觀察者(ConcreteObserver)

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿坝县| 新泰市| 靖远县| 连江县| 庄浪县| 旬阳县| 彰武县| 香格里拉县| 尤溪县| 石家庄市| 南投县| 凌源市| 始兴县| 红河县| 上犹县| 晋宁县| 玛曲县| 阿瓦提县| 丰顺县| 新余市| 南木林县| 大渡口区| 斗六市| 苏尼特左旗| 广南县| 彭泽县| 沁水县| 平陆县| 吴川市| 博客| 邢台县| 察隅县| 常熟市| 昭觉县| 凯里市| 岳池县| 靖宇县| 阿尔山市| 乌鲁木齐市| 邹城市| 兴城市|