框架(Framework)是可重用的,半完成的应用程序,可以用来产生专门的定制程序。 您只要细心地研究真实的应用程序,就会发现程序大致上由两类性质不同的组件组成,一类与程序要处理的具体事务密切相关,我们不妨把它们叫做业务组件;另一类是应用服务。比如说:一个税务征管系统和一个图书管理系统会在处理它们的业务方面存在很大的差异,这些直接处理业务的组件由于业务性质的不同不大可能在不同的系统中重用,而另一些组件如决定程序流向的控制、输入的校验、错误处理及标签库等这些只与程序相关的组件在不同的系统中可以很好地得到重用。人们自然会想要是把这些在不同应用程序中有共性的一些东西抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序框架,再做一个新的东西时就不必白手起家,而是可以在这个基础上开始搭建。实际上,有些大型软件企业选择自己搭建这样的框架。但大多数中小型软件企业或者其他组织,没有条件自己建立框架。
Struts为Java Web应用提供了现成的通用的框架。Struts可以大大提高Web应用的开发速度。如果没有Struts,开发人员将不得不首先花大量的时间和精力来设计、开发自己的框架。有了它后,使得开发人员可以把精力集中在如何解决实际业务问题上。
用《设计模式》中的定义来说就是,框架是构成一类特定软件可复用设计的一组相互协作的类,。。。框架规定了你的应用程序的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。
框架实现了对具体实现细节的 反向控制(IOC),实现者无须考虑框架层已经实现好的设计,只要按照框架的要求开发就可以了,然后把开发好的东西放到框架中就可以了。框架其实就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。