框架(framework)是可重用的,半完成的应用程序,可以用来产生专门的定制程序[Johnson]。
象人一样,软件应用的相似性比不同点要多。它们运行在相同的机器上,期望从相同的设备输入信息,输出到相同的显示设备,并且存储数据到相同的硬盘设备。工作在传统桌面应用的开发人员习惯于那些可以覆盖应用开发同一性的工具包和开发环境。构架在这些公共基础上的应用框架可以为开发人员提供可以为他们的产品提供可重用服务的基础架构。
框架向开发人员提供一系列具有以下特征的骨架组件:
已经知道他们在其他程序上工作的很好;
它们随时可以在下一个项目中使用;
他们可以被组织的其他团队使用;
框架是典型的构建还是购买命题。
如果你自己构建它,在你完成时你就会理解它,但是在你被融入之前将花费多长时间?
如果要购买,你必须得克服学习曲线,同样,在你可以用它工作之前得花多长时间?这里没有所谓正确答案,但许多观察者将会同意,象Struts这样的框架能提供比从头开始开发更显著的投资回报,特别是对于大型项目来说。