第10章 Web开发框架 10.1 开发框架简介 伴随着软件开发技术的发展,可重用、易扩展的组件越来越为人们所青睐。由于将相同类型问题的解决途径进行了抽象,抽取成了一个应用框架(Framework),因此人们可以把注意力更加集中在分析、构建业务逻辑的应用上,而非繁杂的代码上。 10.1.1 框架技术概述 1. 什么是框架 开放源代码软件的兴起,使得各种各样的框架纷纷出现。例如,Apache组织下就拥有诸多的框架类产品,包括国内很熟悉的struts。那么,什么是框架呢? 在设计模式中,Gamma等人为框架给出了一个定义:“框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。” 由这个定义可以看出,框架是针对特定的问题领域的,它包括了一组抽象概念,并且这些抽象概念来源于问题领域。例如,struts是基于MVC模式进行设计,通过model、view、control建立抽象概念的。框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。 总的来说,软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求;对于开发过程而言,这样做会提高软件的质量,降低成本,缩短开发时间。 值得注意的是: (1) 框架不是现成可用的应用系统,它是一个半成品,是需要后来的开发人员进行二次开发,实现具体功能的应用系统。 (2) 框架不是工具包或者类库,调用API并不是在使用框架开发。框架构成了通用的、具有一般性的系统主体部分,二次开发人员只是像做填空题一样,根据具体业务,完成特定应用系统中与众不同的特殊部分。 2. 模式与框架 模式的英文即Pattern,是解决某一类问题的方法的总结。Alexander给出的经典定义是:每个模式都描述了一个环境中不断出现的问题,描述了该问题的解决方案的核心。通过这种方式,可以无数次地使用已有的解决方案,而无需重复相同的工作。模式的意义在于模式是一种指导,在一个良好的指导下,有助于完成任务,有助于作出一个优良的设计方案,达到事半功倍的效果,而且会得到解决问题的最佳办法。框架的英文即framework,是某种应用的半成品,是一组组件,供选用者完成自己的系统。 模式和框架在软件设计中是两个不同的研究领域。模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体。虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而模式的思想可以在框架设计中进行应用。框架和模式存在着显著的区别,主要表现在二者提供的内容和要应用的领域上: (1) 从应用领域上看,框架给出的是整个应用的体系结构,而模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。 (2) 从内容上看,模式仅是一个单纯的设计,这个设计可被不同语言以不同方式来实现,而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。 模式比框架更容易移植。框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。总之,框架是软件,而模式是软件的知识体,可提升框架的设计水平。 10.1.2 常见Java Web开发框架 目前Web开发框架已经有很多,下面介绍一些常用的开发框架: ◆ Struts:是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的几年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大地节省了时间,所以Struts是一个非常不错的应用框架。 ◆ WebWork:是由Open Symphony组织开发的、基于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前的最新版本是2.2.6。WebWork 2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork 2两个项目。Xwork简洁、灵活、功能强
您可能关注的文档
- (NET程序设计与开发)第1章技术导读.ppt
- (NET程序设计与开发)第2章VisualStudio2005集成开发环境简介.ppt
- (NET程序设计与开发)第4章常用的服务器控件.ppt
- (NET程序设计与开发)第5章验证控件.ppt
- (NET程序设计与开发)第7章SqlDataSource数据源控件.ppt
- (PLC应用技术课件)项目三PLC步进顺控指令及其应用.ppt
- (PLC应用技术课件)项目五PLC模拟量控制.ppt
- (Web开发技术)第1章Web技术概述.ppt
- (Web开发技术)第2章Web应用程序开发环境简介.ppt
- (Web开发技术)第4章CSS.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)