MFC框架中的设计模式分析

摘要:分析MFC的视图-文档(View-Document)框架中使用到的设计模式,阐述了这些设计模式的原理和结构,并详细介绍了各种设计模式在MFC中的具体实现方法。

关键字:MFC 设计模式 视图-文档框架

中图分类号:TP311

An Analysis of Design Patterns in MFC Framework


Abstract: In this paper, the design patterns used in MFC View-Document framework are analyzed. The principles and structures of the related design patterns are explained, and the realization in MFC is described in detail.

Key words: MFC, Design pattern, View-Document framework

 

引言

       设计模式(Design Pattern)是面向对象软件设计中已被证实了的设计经验的总结。利用设计模式可以更加简单方便的复用成功的设计和体系结构,帮助设计者更快更好的完成设计,并可以大大提高系统的可扩展性、可移植性,优化系统的设计结构。一般来说,一个模式有四个基本要素组成:模式名称,问题,解决方案和后果。

       MFC(Microsoft Foundation Class)是微软推出的一套开发Windows平台软件的规模宏大的类库,是一套应用框架。之所以说MFC是一套框架,最重要的特征它所提供的View/Document结构能够将数据管理与显示分离。View/Document是MFC的基石。

       分析MFC框架中所使用的设计模式即有利于通过MFC的代码实例来理解设计模式,也有利于通过设计模式来理解MFC的内部机理,更好地使用MFC。文章详细分析了MFC的View/Document结构中所用到的设计模式,并以MFC 类库中提供的源码为例,阐明了各种模式在MFC中的实现原理,最后给出结论。

 

首先是单例模式,应用程序CWinApp类只有一个实例,通常用AfxGetApp()获取此实例.

1、模板方法(Template Method)

模板方法是一种代码复用的基本技术。模板方法模式中,基类用一些抽象的操作定义了一个算法的骨架,子类重定义算法中的特定部分,以完成特定于子类的各种操作。模板方法模式的类结构如图1所示:

设计模式--模板方法模式(照旧,有类关系图)
图1:模板方法类结构图

       作为一种基本的代码复用技术,模板方法在MFC中得到大量的应用。如在MFC的源程序VIEWCORE.CPP中,类CView(AbstractClass)对Windows消息WM_PAINT的相应函数OnPaint(TemplateMethod)。

       首先,通过宏语句ON_WM_PAINT将WM_PAINT消息的处理映射到函数OnPaint。VIEWCORE.CPP中的OnPaint定义了对WM_PAINT的处理骨架,如下所示:

void CView::OnPaint()

{

       // standard paint routine

       CPaintDC dc(this);

       OnPrepareDC(&dc);

       OnDraw(&dc);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值