网络上有很多讲解MFC的书和资料,这些书和资料大体可以分为2种类型:1、API参考及使用示例;2、源码分析。第1类着重介绍MFC包含哪些类、有哪些成员函数以及这些成员函数该如何使用,比如《MFC Windows程序设计》;第2类着重介绍MFC是如何对WIN32 API进行封装的,比如《MFC技术内幕(MFC Internals)》。第1类资料适合作为编码过程中的参考手册,相当于MSDN;第2类资料既可以满足技术爱好者对MFC技术内幕的好奇心,也可以加深对面向对象编程框架的理解。
但是以上这2类资料其实都是从相对较低的一个抽象层次和微观的角度来看待MFC,过于关注MFC的实现细节;而忽略了MFC作为一个整体,各个部分是如何进行组合从而构成这样一个强大而复杂的面向对象框架。而设计模式其实研究如何在类和对象之间分配职责、类和对象之间如何协调以完成特定的问题。
可能由于MFC诞生的时代设计模式还没有这么广泛的流行,所以MFC中设计模式的痕迹并没有那么明显;但是其实任何面向对象的框架都多多少少的使用了各种设计模式。通过探寻MFC中隐含的设计模式,能够帮助我们更加深刻的理解MFC,从而使我们认识到MFC并不是一堆零散的类和函数,而是相互之间有紧密关联的一个有机的整体。
Gof4(四人帮)的经典书籍《设计模式--可复用面向对象软件的基础》总结了23种设计模式,并将其分为3中类型:创建型模式、结构型模式、行为型模式。本文将结合MFC针对这3中类型的模式各