我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下什么是微软的 Application Framework?
到底什么是 Application Framework?
我当年学习这个的时候也困惑了好久,于是一直在搜索这个概念有没有好的解释,结果整个互联网都没有好的解释,我是很困惑这个事情的,为什么没有高手来写一段。今天我决定专门来写一写这个问题。对于很多初学者来说,在还没有真正掌握任何一套Application Framework的使用之前,就来研究这个真的不是很明智,尤其如果你对面向对象还没有深刻体会的话。但如果你已经看到这里那就看下去,希望对你有帮助。
一、知名杂志的说法
首先我们看看侯捷在《程序员》杂志上的无责任书评中是怎么说的:演化(evolution)永远在进行,但这个世界却不是每天都有革命性(revolution) 的事物发生。动不动宣称自己(或自己的产品)是划时代的革命性的,带来的影响就像时下满街跑的大师一样使我们渐渐无动于衷,因为大师不可能满街跑。 但是Application Framework 的的确确在我们软件界称得上具有革命精神。
什么是Application Framework?Framework这个字眼有组织、框架、体制的意思,Application Framework不仅是一般性的泛称,它其实还是面向对象领域中的一个专有名词。
基本上你可以说,Application Framework是一个完整的程序模型,具备标准应用软件所需的一切基本功能,像是文件存取、打印预览、数据交换......以及这些功能的使用接口(工具栏、状态栏、菜单、对话框)。如果更以术语来说,Application Framework 就是由一整组合作无间的对象架构起来的大模型。喔不不,当它还没有与你的程序产生作用的时候,它还只是有形无体,应该说是一组合作无间的类架构起来的大模型。
这带来什么好处呢?程序员只要带个购物袋到类超级市场采买,随你要买MDI或OLE或ODBC或Printing Preview,回家后就可以轻易拼凑出一个色香味俱全的大餐。
类超级市场就是C++ 类库,以产品而言,在Microsoft 是MFC,在Borland 是OWL,在IBM则是OpenClass。这个类库不只是类库而已,传统的函数库(C Runtime 或 Windows API)乃至于一般类库提供的是生鲜超市中的一条鱼一支葱一颗大白菜,彼此之间没有什么关联,负责当大厨的你必须自己选材自己调理。
能够称得上Application Framework 者,提供的是拼盘(就是那种带回家通通丢下锅就好的那种),依你要的是白菜火锅鱼头拼盘或是麻辣拼盘,菜色带调理包都给你配好。当然这样的拼盘是不能够就地吃的,你得给它加点能量。这能量就是所谓的application object(在 M