• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            觀察者模式與MFC的Document/View

            Posted on 2012-06-09 15:52 eryar 閱讀(1831) 評論(0)  編輯 收藏 引用

            Observer Pattern and the Document/View of MFC

            觀察者模式與MFC的Document/View

            一、觀察者概述

            觀察者模式是對象行為模式,用來定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。通常用于將一個系統分割成一系列相互協作的類有一個常見的副作用:需要維護相關對象間的一致性。我們不希望為了維持一致性而使各類緊密耦合,因為這樣降低了它們的可重用性。

            例如許多圖形用戶界面工具箱將用戶應用界面表示與底下的應用數據分離。定義應用數據的類和負責界面的類可以各自獨立地復用。當然他們也可以一起工作。觀察者的結構圖如下所示:

            Observer

            Subject

            l 目標知道它的觀察者??梢杂腥我舛鄠€觀察者觀察同一個目標;

            l 提供注冊和刪除觀察者對象的接口;

            Observer

            l 為那些在目標發生改變時需要獲得通知的對象定義一個更新接口;

            ConcreteSubject

            l 將有關狀態存入各ConcreteObserver對象;

            l 當它的狀態發生改變時,向它的各個觀察者發出通知;

            ConcreteObserver

            l 維護一個指向ConcreteSubject對象的引用;

            l 存儲有關狀態,這些狀態應與目標的狀態保持一致;

            l 實現Observer的更新接口以使自身狀態與目標狀態保持一致;

            二、Document/View Architecture of MFC

            類CDocument主要用來存儲數據;類CView綁定到CDocument并根據CDocument中的數據來顯示出畫面或用來處理與用戶的交互來操作CDocument中的數據。Document/View結構的主要好處是一個Document支持多Views,假設你的程序可以讓用戶以表格的形式看到數據,也可以以圖形的形式看到數據,即數據有多種表現形式,并且當數據改變時,表格和圖表形式都同時改變。在MFC中,表格視圖和圖形視圖可以是CView派生出來的不同的類,這些類可以只關聯上一個Document對象。Document對象保存數據,這些視圖訪問Document對象并顯示出從Document對象獲得的數據。

            當用戶更新這些視圖中的一個時,調用CDocument::UpdateAllViews函數,將會通知這個Document關聯的所有視圖,這些視圖將會用CDocument最新的數據來更新自己。

            如果不把數據和視圖分離,這種情況編程將會復難,特別地當視圖自己保存數據時。當使用Document/View結構后,生活變得容易,這個框架將會為你來做協調工作。

            Document/View

            伊人久久无码精品中文字幕| 精品久久久久国产免费| 国产精品久久久久久久app| 国产99久久久久久免费看| www亚洲欲色成人久久精品| 久久久久国色AV免费观看| 亚洲国产成人精品91久久久 | 1000部精品久久久久久久久| 国产成人无码精品久久久性色| 亚洲AV无码久久寂寞少妇| 久久se精品一区二区| 久久国产香蕉视频| 无码AV中文字幕久久专区| 亚洲嫩草影院久久精品| 国产成人精品综合久久久| 精品少妇人妻av无码久久| 色婷婷久久久SWAG精品| 成人国内精品久久久久影院| 无码人妻久久一区二区三区蜜桃| 久久亚洲精精品中文字幕| 四虎国产精品成人免费久久| 99999久久久久久亚洲| 狠狠色丁香久久婷婷综合蜜芽五月| 国内精品伊人久久久久av一坑| 久久久久亚洲精品中文字幕| 久久精品国产亚洲AV大全| 久久人人爽人人爽人人av东京热| 99久久无码一区人妻| 精品久久久久久国产潘金莲| 久久精品国产乱子伦| 久久一区二区三区99| 久久99国产一区二区三区| 久久福利青草精品资源站免费| 久久亚洲AV成人出白浆无码国产| 亚洲国产小视频精品久久久三级 | 久久综合一区二区无码| 国产精品99久久久久久宅男| 欧洲成人午夜精品无码区久久| 中文精品99久久国产| 婷婷久久综合九色综合绿巨人| 精品久久久久一区二区三区|