青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

MFC與設計模式

This main topic of this article is to show how patterns are used in MFC. We will be seeing the usage of three patterns in MFC library.

Creational : Singleton Pattern

First step in any MFC application is the creation of application object (object of class derived from CWinApp). There should be only one application object in an instance of MFC application. CWinApp is designed to make sure that only application object is present in a given instance. CWinApp and its descendants are called Singleton Classes. A class (CWinApp or its descendant) that assures a maximum of ONE object of its type at a given time and provides a global access point (AfxGetApp() method) to this object is a Singleton class.

As this principle is applied over and over again to solve recurring object "creational" problems, this becomes a pattern. Singleton Pattern ensures that a class only has one instance and provides a global access point it. The article Creating Singleton Objects using Visual C++ talks about different approaches for implementing Singletons.

Structural : Bridge Pattern

Bridge Pattern is all about decoupling an abstraction (interface) from its implementation so that the two can vary independently. In MFC, the process of storing/retrieving an object to/from a persistence mechanism (like a file) is called Serialization. MFC uses the Bridge Pattern to implement Serialization. CArchive and CFile classes implement object Serialization. CArchive class provides the interface for writing/reading an object to/from a persistence mechanism whereas the CFile and its sub classes provides implementation for different persistence mechanisms such as memory, disk file, sockets etc.

A CArchive object is configured with an object of class CFile (or a derived class) during its construction, from which it obtains the necessary information for serialization, including the filename and type of the requested operation (a read or write). Client performing the Serialization operation can use CArchive object without regarding the persistence mechanism implemented by CFile classes.

The article Bridge Pattern - Bridging the gap between Interface and Implementation talks about Bridge pattern in detail.

Behavioral : Observer Pattern

The Observer Pattern is intended to "Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically". An object that is subjected to change is called a Subject and an object that depends on the Subject's state is called an Observer.

MFC uses a Document/View variant of the Observer Pattern. MFC's famous Document/View architecture uses this variant. A document contains the data object and acts as a Subject. A view is a window object through which the user updates the document and it acts as an Observer. A document can have multiple views. Whenever the data in the document is changed by one of the views, it updates the document by calling UpdateAllViews method, with optional hint about the modification. To inform about the change to other views, the document object calls OnUpdate method for each view attached to it (except the view that called UpdateAllViews). Derived view classes can override the OnUpdate method and update themselves by querying the data from the document.

The article Applying Observer Pattern in C++ Applications talks about Observer pattern in detail.

Summary

Design Pattern provides a common language for designers and helps them to decompose systems into a set of cooperating classes and objects. They provide proven design solution to recurring problems. In this article, I have introduced the design pattern and how MFC is using some of the patterns in its design. We can easily find more and more patterns when we dig into MFC and its classes.

posted on 2006-05-25 13:39 夢在天涯 閱讀(3800) 評論(0)  編輯 收藏 引用 所屬分類: CPlusPlus 、MFC/QT 、Design pattern

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1815007
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美高清影院| 久久久欧美精品sm网站| 国产精品劲爆视频| 欧美日韩精品一区| 国产精品久久久久99| 欧美色另类天堂2015| 国产欧美亚洲一区| 韩国三级电影久久久久久| 亚洲国产乱码最新视频| 亚洲三级毛片| 亚洲专区一二三| 久久婷婷国产综合精品青草| 久久婷婷国产综合国色天香| 欧美国产视频在线观看| 在线综合亚洲| 欧美一级网站| 免费永久网站黄欧美| 亚洲欧美日韩一区二区三区在线| 亚洲欧美变态国产另类| 久久久久欧美精品| 亚洲激情网站| 亚洲午夜性刺激影院| 久久婷婷综合激情| 国产精品免费看片| 亚洲国产精品久久91精品| 一区二区三区欧美在线| 欧美在线亚洲一区| 亚洲国产精品精华液网站| 亚洲图片欧美一区| 欧美成人激情视频免费观看| 国产日产亚洲精品| 亚洲午夜一级| 亚洲精品国产欧美| 久久综合色8888| 国产欧美视频在线观看| 亚洲视频第一页| 欧美激情二区三区| 性xx色xx综合久久久xx| 欧美日韩国产综合视频在线| 亚洲第一综合天堂另类专| 性欧美精品高清| 9人人澡人人爽人人精品| 美女尤物久久精品| 狠狠色丁香婷婷综合| 午夜精品视频一区| 一本色道久久88精品综合| 狂野欧美性猛交xxxx巴西| 国内精品嫩模av私拍在线观看| 亚洲欧美变态国产另类| 一区二区毛片| 国产精品成人播放| 一区二区国产日产| 亚洲精品视频免费| 欧美黄网免费在线观看| 亚洲人成网站精品片在线观看| 美乳少妇欧美精品| 久久日韩粉嫩一区二区三区| 在线成人av网站| 欧美国产国产综合| 欧美gay视频| 一区二区电影免费观看| 一区二区三区回区在观看免费视频| 欧美日韩国产色站一区二区三区| 亚洲国产精品ⅴa在线观看| 米奇777在线欧美播放| 久久综合久久久| 日韩小视频在线观看| 91久久在线观看| 欧美日韩一区二区三区在线观看免| 日韩视频免费| 日韩视频亚洲视频| 国产精品久久久爽爽爽麻豆色哟哟| 午夜欧美理论片| 久久久久久9999| 亚洲伦理一区| 亚洲免费在线精品一区| 国产精品丝袜白浆摸在线| 国产精品系列在线| 久久蜜桃资源一区二区老牛| 久久久天天操| 夜夜精品视频一区二区| 亚洲天堂视频在线观看| 国产手机视频一区二区| 欧美大片在线影院| 欧美日韩国产综合视频在线观看中文 | 亚洲高清视频的网址| 免费日韩成人| 欧美欧美全黄| 欧美在线亚洲在线| 农村妇女精品| 亚洲男人的天堂在线观看| 性久久久久久久| 亚洲精品一级| 性亚洲最疯狂xxxx高清| 最新成人在线| 亚洲一区二区成人| 亚洲高清av| 亚洲一级高清| 亚洲精品综合久久中文字幕| 亚洲色无码播放| 亚洲第一精品电影| 99热这里只有精品8| 国产亚洲精品久久久久久| 欧美成人精品| 国产精品theporn88| 乱人伦精品视频在线观看| 欧美日韩在线视频一区二区| 久久久水蜜桃| 欧美视频免费在线| 欧美国产第一页| 国产无遮挡一区二区三区毛片日本| 欧美高清视频一区二区三区在线观看| 欧美区亚洲区| 欧美jizzhd精品欧美巨大免费| 国产精品成人va在线观看| 欧美激情国产日韩精品一区18| 国产精品国产亚洲精品看不卡15| 麻豆成人在线| 国产麻豆午夜三级精品| 亚洲精品人人| 亚洲精品1区2区| 午夜久久久久久| 亚洲午夜久久久久久尤物| 开元免费观看欧美电视剧网站| 午夜影院日韩| 性欧美1819sex性高清| 欧美经典一区二区三区| 欧美wwwwww| 在线电影国产精品| 久久国产精品电影| 久久久久欧美精品| 国产一区二区欧美| 欧美一区二区在线免费播放| 亚洲欧美精品伊人久久| 欧美午夜剧场| 亚洲图片在线观看| 亚洲一区二区黄色| 亚洲调教视频在线观看| 一本大道久久a久久精品综合| 欧美第一黄色网| 亚洲激情精品| 中文在线资源观看视频网站免费不卡| 欧美激情一区二区三区在线视频| 欧美好骚综合网| 日韩一区二区久久| 欧美日韩国产精品专区| 日韩视频一区二区三区在线播放免费观看 | 亚洲精品一区二区在线观看| 亚洲二区在线视频| 毛片av中文字幕一区二区| 蜜桃av一区二区| 亚洲精品欧美精品| 欧美女激情福利| 亚洲天堂av电影| 久久久九九九九| 伊人久久大香线| 欧美www视频| 亚洲免费高清| 久久成人18免费网站| 国户精品久久久久久久久久久不卡| 欧美一区二区免费观在线| 久久午夜视频| 亚洲精选在线| 国产精品家庭影院| 亚洲精品小视频| 国产精品男人爽免费视频1| 午夜在线成人av| 美玉足脚交一区二区三区图片| aa国产精品| 国产三级欧美三级| 麻豆精品一区二区综合av| 亚洲精品日韩精品| 久久国产日本精品| 亚洲人体大胆视频| 国产精品视频精品视频| 久久一区激情| 亚洲女女做受ⅹxx高潮| 亚洲成人资源| 欧美一区二区视频观看视频| 亚洲美女av黄| 激情欧美亚洲| 欧美色综合天天久久综合精品| 久久国产精品久久久久久久久久| 亚洲欧洲一区二区三区| 欧美一区二区网站| 妖精成人www高清在线观看| 国产日韩欧美综合| 欧美精品一区二区三区在线播放 | 亚洲成色精品| 国产日产亚洲精品| 欧美网站在线观看| 麻豆国产va免费精品高清在线| 亚洲欧美成人| 一区二区免费在线播放| 亚洲国产精品va在看黑人| 久久男女视频| 欧美在线观看视频一区二区三区 | 欧美韩日视频| 久久影视精品| 久久久www成人免费无遮挡大片 |