框架是APP应用程序的半成品。 框架提供了可在APP应用程序之间共享的可用公共结构。 开发人员将框架嵌入并扩展到他们自己的APP应用程序中以满足特定的需求。 框架与工具包的区别在于框架不仅仅是一个工具类,还提供了一致的结构。

框架是一组可以选择来完成自己系统的组件。 简单来说,就是用别人搭建的舞台,由你来表演。 而且,框架一般是成熟的,不断升级的软件

该框架是可复用的设计组件,定义了APP的体系结构,阐明了设计、协作组件之间的依赖关系、责任分配和整个控制过程,并给出了抽象类及其实例之间协作方式的因此,组件库的大规模重用也需要框架。

组件框架方法在很大程度上借鉴了硬件技术发展的成果,它是组件技术、软件体系结构研究和应用软件开发三大发展相结合的产物。 框架通常显示为组件库,但组件库只是框架的重要部分。 框架的关键还在于框架中对象之间的交互模式和控制流模式。

框架的定制性比部件高。 从某种意义上说,把部件和框架看作是两种不同但相互合作的技术也许更好。 框架为重用构件提供了环境,并提供了处理错误、交换数据和激活操作的标准方法。

应用框架的概念也很简单。 它不是包含组件APP的小片程序,而是实现了某一应用领域通用的完整功能(特殊APP部分除外)的基础服务。 使用这种框架的程序员可以在共同功能得到落实的基础上开始具体的系统开发。 框架提供了应用期望缺省行为的所有类的集合。 的APP应用程序通过重写子类或程序集对象(框架的缺省行为)来支持APP应用程序特定的行为。

APP应用框架强调了软件的设计复用性和系统的可扩展性,以缩短大型APP应用软件系统的开发周期,提高开发质量。 与传统的基于类库的面向对象重用技术相比,APP应用框架侧重于面向专业领域的软件重用。 应用框架具有域相关性,组件基于框架复合,生成可执行的系统。 框架的力量越大,其中所包含领域的知识就越完整。

框架与设计模式的关系

框架、设计模式这两个概念很容易混淆,但其实它们之间是有区别的。 组件是普通代码的复用,而设计模式是设计的复用,框架介于两者之间,部分代码可以复用,部分设计可以复用,有时分析也可以复用。 软件生产有三个层次的重用。 内部重用,即可以在同一个APP应用程序中通用的抽象块。代码重用,即将通用模块组合到一个库或工具集中,以便在多个APP应用程序和领域中使用的APP框架重用,提供了最高级别的重用

框架和设计模式相似,但根本不同。 设计模式是指在某种环境下反复出现的问题和为解决该问题的方案的记述,比框架更抽象; 框架可以用代码表示,也可以直接执行或复用,但是对于模式,只有实例可以用代码表示。 设计模式是比框架小的元素,一个框架通常包含一个或多个设计模式,虽然框架始终针对特定的APP应用程序领域,但同一模式可以应用于不同的APP应用程序。 可以说框架是软件,设计模式是软件的知识。

为什么要用框架?

软件系统的发展到今天为止已经很复杂,特别是因为服务器端的软件、设计的知识、内容、问题太多了。 在某些方面使用别人成熟的框架,就像让别人帮你做基础工作一样,你只需要专注于系统的业务逻辑设计。 此外,框架普遍成熟、稳健,可以处理系统的许多细节问题,如事物的处理、安全性和数据流控制。 还有框架一般很多人都在使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,所以可以直接享受别人升级代码带来的好处。

通常,框架位于子APP应用平台(如J2EE )和上层业务逻辑之间的中间层。

衡量应用系统设计开发水平高低的标准是解耦性; 你的APP应用系统的各项功能可以完全脱离吗? 是否相互依存,只有这样才能表明具有可维护性、可扩展性的软件设计目标。

为了实现这个目的,各种框架概念应运而生。 J2EE框架标准将一个系统划分为WEB和EJB的主要部分。 当然,我们有时并不是用这个具体的技术来区分,而是从设计中抽象为表现层、服务层、持久层。 这三个层面将J2EE从一个高度分离出来,达到解耦的目的。

框架的最大好处是复用。 面向对象系统获得的最大复用方式是框架,大的APP应用系统多由多层相互协作的框架构成。

由于框架可以重用代码,因此从现有构件库中创建APP表示法变得非常简单。 构件都使用统一定义的框架界面,从而简化构件之间的通信。

框架可以重用设计。 提供可重用的抽象算法和高级设计,将大系统分解为更小的组件,并描述组件之间的内部接口。 这些标准接口允许基于现有组件通过组装来构建各种系统。 如果满足接口定义,新组件将插入到框架中,组件设计者可以重用框架的设计。

框架也可以重用分析。 如果所有人都按照框架的思想分析事务,就可以把它分成同一个部件,采用相似的解决方法,采用同一框架的分析者之间可以进行交流。

使用框架技术开发软件的主要特征如下。

领域内的软件结构一致构建更开放的系统复用代码大幅增加,软件工作效率和质量也得到了提高,软件设计者必须集中精力理解领域,保存更充分的需求分析经验,不仅局限于低级编程,而且经验丰富有助于多人在允许采用快速成型技术的一个项目内合作

同工作; 大量的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。
转自:http://www.cnitblog.com/yemoo/archive/2007/10/12/34780.html