六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

IssuVision是怎么完成觀察器模式的注冊與通知的

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

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

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í)例,然后讓所有的觀察器對象共享這個(gè)實(shí)例,這樣就完成了注冊。但是,事情還沒有完,我們深入Subject的注冊操作,看看里面究竟發(fā)生了什么:

paneMiddle的注冊:

public ISubject Subject

{

set

{

m_subject = (IssueSubject)value;

issueList.Subject = m_subject;

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

}

}



paneRight的注冊

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

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



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



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



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



主站蜘蛛池模板: 天天摸天天澡天天碰天天弄 | 伊人精品视频 | 日韩在线免费视频 | 天天操天天操 | 伊人网在线视频观看 | 日本高清免费在线视频 | 欧美一级一一特黄 | 又大又硬又爽又粗又快的视频免费 | 天天色天天摸 | 色玖玖 | 欧美一级片网站 | 青春草在线观看视频 | 婷婷成人丁香五月综合激情 | 亚洲主播 | 青娱乐精品视频在线观看 | 亚洲第一区在线 | 亚洲欧美人妖另类激情综合区 | 又粗又大又长又爽免费视频 | 亚色影视 | 婷婷99精品国产97久久综合 | 亚洲精品视频在线观看你懂的 | 伊人狼人影院 | 小泽玛利亚久久一区二区三区 | 深爱激情五月婷婷 | 视频在线免费观看网址 | 青免费视频 | 色妞在线影院色 | 亚洲精品综合在线 | 亚洲第一久久 | 日本一区免费观看 | 午夜影视免费观看 | 欧美行性性性o00x | 亚洲天堂伦理 | 日韩中文字幕在线视频 | 天天草比| 天堂资源在线最新版 | 亚洲国产成人久久77 | 欧美亚洲国产日韩综合在线播放 | 天天夜夜人人 | 天天插天天操天天射 | 亚拍一区 |