操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    訂閱者的任務(wù)是響應(yīng)發(fā)布者發(fā)布的數(shù)據(jù)改變通知c實現(xiàn)觀察者模式,呈現(xiàn)給用戶實時(相對來說)的系統(tǒng)狀態(tài)。

    看下面的代碼:

    復(fù)制代碼 代碼如下:

    = null;

    //定義數(shù)據(jù)(文檔)對象

    {

    get

    c 單例模式懶漢實現(xiàn)_c實現(xiàn)觀察者模式_編程語言實現(xiàn)模式 微盤

    {

    ;

    }

    set

    {

    = ()value; //下面一行添加數(shù)據(jù)對象事件響應(yīng)函數(shù)

    . += new .();

    編程語言實現(xiàn)模式 微盤_c 單例模式懶漢實現(xiàn)_c實現(xiàn)觀察者模式

    }

    }

    void ( , e) //定義數(shù)據(jù)對象事件響應(yīng)函數(shù)

    {

    this..Text = .;//根據(jù)數(shù)據(jù)對象更新內(nèi)容

    this.(); //重繪視圖

    }

    編程語言實現(xiàn)模式 微盤_c 單例模式懶漢實現(xiàn)_c實現(xiàn)觀察者模式

    上述代碼首先在視圖類中定義一數(shù)據(jù)對象屬性,并在屬性的set函數(shù)中添加對數(shù)據(jù)對象所發(fā)布通知的響應(yīng)。接下來定義了響應(yīng)數(shù)據(jù)對象通知的函數(shù),在該函數(shù)中更新視圖數(shù)據(jù)并重繪。

    主窗體:

    主窗體的任務(wù)是定義一個相當(dāng)于全局的數(shù)據(jù)對象,將其賦予每個訂閱該對象的視圖,并在需要的時候改變數(shù)據(jù)對象內(nèi)容。

    看下面的代碼:

    復(fù)制代碼 代碼如下:

    ; //發(fā)布者

    View ;//訂閱者

    c 單例模式懶漢實現(xiàn)_編程語言實現(xiàn)模式 微盤_c實現(xiàn)觀察者模式

    void ( , e)

    {

    = new (); //生成實例

    = new View();

    . = ; //為訂閱者指定發(fā)布者

    .Show(); //顯示

    . = "ZPY"; //改變發(fā)布者數(shù)據(jù)

    c實現(xiàn)觀察者模式_c 單例模式懶漢實現(xiàn)_編程語言實現(xiàn)模式 微盤

    . = true;

    }

    在框架窗體類中分別生成發(fā)布者和訂閱者的實例,然后將發(fā)布者實例賦值給訂閱者的數(shù)據(jù)對象屬性,由于C#中類的傳遞默認(rèn)采用引用傳遞的方式c實現(xiàn)觀察者模式,因此在賦值過程中并不生成臨時對象,中的和View中的所指為同一對象。接下來在主窗體中改變發(fā)布者數(shù)據(jù),通過C#的代理()機(jī)制,訂閱者即能更新自己。

    小結(jié)

    MFC為開發(fā)者搭好了框架,盡管作了許多的開發(fā),可能很多人還是不太了解什么是所謂的觀察者模式,C#提供了全開放的設(shè)計,可能辛苦些,但不再摸不著頭腦,條理感覺更清晰些,封裝性感覺也比MFC好些!

    學(xué)習(xí)模式注重精髓而非模板,本文為了便于說明假定了三方并對三方功能進(jìn)行了劃分,實際應(yīng)用并不拘泥于此。如果情況合適將數(shù)據(jù)(文檔)類設(shè)計為單件模式也是一種很不錯的選擇!總之一句話:掌握精髓,盡情發(fā)揮!

    設(shè)計模式詳解教程觀察者代理利用

    相關(guān)文章:

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有