《插件式GIS应用框架的设计与实现》1.1.1《应用框架简介》
1.1 应用框架精讲
1.1.1 应用框架简介
“框架(Framework)是一个系统全部或者部分的可复用设计,通常由一组抽象类和类之间的协作组成”1。
软件产品的开发是一项复杂的系统工程,随着它需要解决的问题复杂度的不断提高,软件产品的研发过程早已从过去“作坊式”开发演化到了当今符合一系列工业标准和规范的程度。软件产品面对的具体应用需求变得日益多元化、软件项目开发规模日益大型化,这两个因素促使软件开发团队的管理变得越来越复杂,软件开发项目的可控性变得愈发不稳定。
为了寻找“银弹”,IT工业界采用了多种方法,它们包括制定各种软件开发标准和规范、发明具有更高生产力的编程语言、开发更好的编译器和运行时(Runtime)、提供功能更加强大的可分发组件库和探索更好的软件开发模式。但对于应用程序员而言,各种标准、规范和不断涌现的编程语言并不在自己可以控制的范围之内,大部分情况下,我们只能从软件工程的角度出发,在设计层面采用一些独特的软件架构和设计模式以达到我们期待的下列目的:
n 尽量提高软件的复用性,避免不必要的重复编码工作;
n 增强组件的封装性;
n 提高软件的模块化程度;
n 不同功能模块之间能够无缝集成;
n 软件具有灵活的可扩展性;
n 软件产品的扩展和开发具有标准性;
n 软件产品具有面向不同应用层面的领域性和易移植性。
为了实现这些要求,在设计层面上,越来越多的软件产品开始采用应用框架(Application Framework)思想进行软件结构设计。应用框架已经是一个被广泛使用的术语,它成为软件开发中一种非常实用且常用的编程规范和设计架构。
我们肯定见到过许多自称“框架”的软件产品,也许有人会感觉到不屑,有些很少代码量的程序居然也称呼自己是某种形式的应用框架?事实上,应用框架无关乎规模大小,就像房屋一样,摩天大楼和棚房都是房屋,只不过它们的规模和精巧度大不一样而已。
但无论如何,一个有资格称为“应用框架”的软件产品,必须体现应用框架的本质特征,即它能提供一个关联的、具有协调性的上下文环境(Context)和特定的工作模式(Work Model)供框架使用者访问和遵守。应用框架将为程序员提供开发应用组件的模板和一般方法,并隐藏了应用组件在框架后台的运行和协调过程。程序员将在拥有“说明书”和“烹饪原料”的情况下“烹制”自己需要的功能组件而无需担心“锅碗瓢盆”是否缺失和损坏。这样,开发人员就能更加关注于具体应用逻辑的代码实现而不用理会其它枝蔓问题,减少了工作量和旁枝末节的干扰。