日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

IssuVision是怎樣完成觀察器模式的注冊(cè)與通知的

IssuVision是怎樣完成觀察器模式的注冊(cè)與通知的

更新時(shí)間:2022-04-29 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

眾所周知,觀察器(Observer)模式的重點(diǎn)是對(duì)觀察器對(duì)象的注冊(cè)以及Subject狀態(tài)改變時(shí)對(duì)觀察器對(duì)象的消息通知。那么,在IssuVision(微軟智能客戶端的示例程序)中是如何實(shí)現(xiàn)這一點(diǎn)的哪?在此,我提出自己的看法,希望大家批評(píng)指正。

在IssuVision中,系統(tǒng)定義了一個(gè)IssueSubject類,該類實(shí)現(xiàn)了Isubject接口,同時(shí)各觀察器對(duì)象都實(shí)現(xiàn)了Iobserver接口,該接口包括了一個(gè)Isubject對(duì)象。注冊(cè)和事件等級(jí)是在這里完成的:

m_issueSubject = new IssueSubject(this.components);



paneStaff.Subject = m_issueSubject;

paneMiddle.Subject = m_issueSubject;

paneRight.Subject = m_issueSubject;

paneChart.Subject = m_issueSubject;

paneConflict.Subject = m_issueSubject;



系統(tǒng)先創(chuàng)建了一個(gè)IssueSubject類的實(shí)例,然后讓所有的觀察器對(duì)象共享這個(gè)實(shí)例,這樣就完成了注冊(cè)。但是,事情還沒(méi)有完,我們深入Subject的注冊(cè)操作,看看里面究竟發(fā)生了什么:

paneMiddle的注冊(cè):

public ISubject Subject

{

set

{

m_subject = (IssueSubject)value;

issueList.Subject = m_subject;

m_subject.IssueDataChanged += new IssueSubject.IssueDataChangedEventHandler(this.Subject_IssueDataChanged);

}

}



paneRight的注冊(cè)

public ISubject Subject

{

set

{

m_subject = (IssueSubject)value;

m_subject.PositionChanged += new IssueSubject.PositionChangedEventHandler(this.Subject_PositionChanged);

m_subject.IssueDataChanged += new IssueSubject.IssueDataChangedEventHandler(this.Subject_IssueDataChanged);

}

}

在這兩個(gè)注冊(cè)里,m_subject都指向了同一個(gè)IssueSubject對(duì)象,這能保證他們共享相同的數(shù)據(jù)源,同時(shí)把IssueSubject對(duì)象的事件處理程序掛接到了本觀察器的成員方法中。這就保證了IssueSubject對(duì)象觸發(fā)事件時(shí),能夠把消息通知到本觀察器。更進(jìn)一步,大家再看一下這兩個(gè)注冊(cè)方法里的兩行代碼:

m_subject.IssueDataChanged += new IssueSubject.IssueDataChangedEventHandler(this.Subject_IssueDataChanged);



m_subject.IssueDataChanged += new IssueSubject.IssueDataChangedEventHandler(this.Subject_IssueDataChanged);



在這里,m_subject.IssueDataChange事件對(duì)應(yīng)了兩個(gè)事件響應(yīng)方法,這就保證了IssueDataChange事件發(fā)生時(shí)能同時(shí)通知多個(gè)觀察器對(duì)象,而且是只通知定購(gòu)了該消息的對(duì)象。同樣,我們也很容易的為某個(gè)觀察器對(duì)象定購(gòu)或取消定購(gòu)某個(gè)特定的消息。



通過(guò)以上介紹,我想大家應(yīng)該明白了觀察器模式的注冊(cè)和通知方法了吧?如果上面有錯(cuò)誤或不足的地方還請(qǐng)大家斧正。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 国产精品高清2021在线 | 国产婷婷高清在线观看免费 | 韩国日本在线观看 | 欧美日韩影视 | 免费福利视频在线观看 | 日本在线网站 | a级精品九九九大片免费看 a级毛毛片看久久 | 吃奶添下面大尺度视频 | 婷婷亚洲国产成人精品性色 | 国产高清日韩 | 免费精品一区二区三区第35 | 波多野结衣国产一区 | 免费精品精品国产欧美在线 | 狠狠色综合网站久久久久久久 | 99香蕉国产线观看免费 | 日韩在线观看网站 | 久久精品最新免费国产成人 | 视频一区 国产 | 欧美手机在线播放 | 国产成人精品一区二三区在线观看 | 国产97色在线 | 日韩 | 欧美日韩不卡一区 | 国产精品久久久久一区二区三区 | 国产综合久久久久久 | 国产第一浮力新路线 | 国产成人免费片在线视频观看 | 性欧美大战久久久久久久久 | 韩国亚洲伊人久久综合影院 | 一本岛一区在线观看不卡 | 天天爱夜夜爱 | 日本一级毛片不卡免费 | 国产精品久久久久a影院 | 中文字幕日韩一区二区三区不卡 | 日本三级香港三级三级人!妇久 | 在线毛片一区二区不卡视频 | 中文字幕一二三区 | 四虎在线观看网址 | 国产一区二区久久久 | 欧美影视一区 | 噜噜噜天天躁狠狠躁夜夜精品 | 国产精品一区牛牛影视 |