上文讨论的例子是一个简单的例子,主要是从代码层面来讲述框架的概念。但是为了完全理解框架的威力,我们需要从更高的层次来看待框架的概念。我们选择的例子是Eclipse。从IBM向开放源码界捐赠Eclipse以来,Eclipse迅速成为一种非常优秀的集成开发工具(它绝对不是简单的Java IDE),Eclipse缘何成功呢?关键在于Eclipse的设计理念和根据设计理念发展起来的底层支持框架。
在软件开发中,需要各种各样的技能,需要各种各样的开发工具,但是工具之间如果彼此不能够相互交互,那么开发流程就难以连贯。Eclipse的目标就是要解决这个问题。
Eclipse平台的价值在于它的促进作用:根据插件模型来快速开发集成功能部件。
那么怎么做呢?我们来看Eclipse自己对这个问题的描述:
Eclipse 的核心是动态发现插件的体系结构。平台负责处理基本环境的后台工作,并提供标准的用户导航模型。于是每个插件可以专注于执行少量的任务。有哪些类型的任务?定义、测试、制作动画、发布、编译、调试、图解等等,只要您想象得到的应有尽有。
Eclipse的平台运行环境是框架的支持部分,而平台中涉及的Workbench、Help、Team、Workspace都属于抽象体,而插头表示系统的扩展点(称为hook)。
这里重点要讨论的是Eclipse的定位哲学。Eclipse作为一个集成开发工具,他希望能够将各种各样的开发工具集中到一个平台下,但是所有的事情都由一个组织来做是不可能的,最好的方式就是建立一种组织方式,能够将不同技术提供商的技术集成起来。所以他的定位哲学就是提供做事的方法,而不做具体的事情。
这种思路在优秀的软件设计中是很常见的,另一个优秀的范例是Ant。由于篇幅所限,我们就不进行深入讨论了。
所以Eclipse只是提供针对IDE环境、Java对象模型提供了一组的抽象体,插件的开发者可以根据自己的需要,设计自己的插件,通过扩展点接入到Eclipse。Eclipse是一个成功的软件,也是一个成功的框架。
深入了解
developerWorks 上的 Eclipse 平台入门一文提供了Eclipse的相关信息。
框架过程模式是一本讨论框架设计过程的书籍,您可以从中了解到框架的开发过程和普通软件的开发过程的区别
关于作者
林星,致力于研究敏捷理论和优秀的软件设计思想,并将之应用于国内的软件组织。可以通过 iamlinx@21cn.com 和他联系,也可以通过访问 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.qca.cn 和 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.aglichina.org 来获得更多的信息。
文章来源于领测软件测试网 https://www.ltesting.net/