• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

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

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

        更新時間:2022-04-29 文章作者:未知 信息來源:網絡 閱讀次數:

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

        在IssuVision中,系統定義了一個IssueSubject類,該類實現了Isubject接口,同時各觀察器對象都實現了Iobserver接口,該接口包括了一個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;



        系統先創建了一個IssueSubject類的實例,然后讓所有的觀察器對象共享這個實例,這樣就完成了注冊。但是,事情還沒有完,我們深入Subject的注冊操作,看看里面究竟發生了什么:

        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);

        }

        }

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

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



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



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



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

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 免费中文字幕一级毛片| a级毛片高清免费视频| 成人黄18免费视频| 亚洲偷自精品三十六区| 大地资源免费更新在线播放| 7777久久亚洲中文字幕| 免费国产黄线在线观看| 亚洲成AV人影片在线观看| 午夜dj免费在线观看| 福利片免费一区二区三区| 亚洲XX00视频| a国产成人免费视频| 亚洲综合无码一区二区| 色欲A∨无码蜜臀AV免费播| 亚洲电影在线免费观看| 成人毛片视频免费网站观看| 精品亚洲成A人在线观看青青| 亚洲AV无码一区二区三区在线观看 | 久久亚洲中文字幕精品有坂深雪 | 亚洲欧洲久久av| 日韩av无码免费播放| 亚洲黄色在线观看| 成年女人看片免费视频播放器 | 二个人看的www免费视频| 亚洲一级二级三级不卡| 啦啦啦高清视频在线观看免费 | 免费h视频在线观看| 亚洲午夜成激人情在线影院 | 一级毛片在线免费观看| 亚洲色大成网站www永久男同| 亚洲AⅤ无码一区二区三区在线| 免费看少妇高潮成人片| 日韩亚洲国产高清免费视频| 亚洲av片一区二区三区| 最近免费最新高清中文字幕韩国| 亚洲人成电影网站免费| 亚洲精品国产品国语在线| 中字幕视频在线永久在线观看免费| 国产av无码专区亚洲av毛片搜| 午夜亚洲国产理论秋霞| 国产片免费在线观看|