框架式编程和设计模式

上传人:xuey****n398 文档编号:253014303 上传时间:2024-11-27 格式:PPT 页数:42 大小:1,021KB
返回 下载 相关 举报
框架式编程和设计模式_第1页
第1页 / 共42页
框架式编程和设计模式_第2页
第2页 / 共42页
框架式编程和设计模式_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,LOGO,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,第,1,0,章,框架式编程和设计模式,孙焘,重点:,框架式编程,1,MVC,编程思想,2,structs,概述与举例,3,难点:,MVC,编程思想理解,1,structs,流程,2,10.1,框架式编程,什么是模式,什么是框架,为什么要用模式,为什么要用框架,常见的设计模式,常见的,java,框架,10.1,框架式编程,10.1.1,什么是模式,模式,即,pattern,。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。,Alexander,给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。,10.1,框架式编程,10.1.2,什么是框架,框架,即,framework,。是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。,框架,其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。,10.1,框架式编程,10.1.3,为什么要用模式,因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。,10.1,框架式编程,10.1.4,为什么要用框架,因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。框架一般处在低层应用平台(如,J2EE,)和高层业务逻辑之间的中间层。,10.1,框架式编程,10.1.5,常见的设计模式,最常见的,MVC,模式。,MVC,模式是,1996,年由,Buschmann,提出的:模型(,Model,):就是封装数据和所有基于对这些数据的操作。视图(,View,):就是封装的是对数据显示,即用户界面。控制器(,Control,):就是封装外界作用于模型的操作和对数据流向的控制等。,10.1,框架式编程,10.1.6,常见的,JAVA,框架,(1)WAF,:全称:,WEB APPLICATION FRAMEWORK,主要应用方面,:EJB,层,(,WEB,层也有,但是比较弱)。主要应用技术,:EJB,等出处:,简述:这是,SUN,在展示,J2EE,平台时所用的例子,PetStore(,宠物商店系统,),里面的框架。是,SUN,蓝皮书例子程序中提出的应用框架。它实现了,MVC,和其他良好的设计模式。,SUN,的网站上有技术资料,最好下载,PetStore,来研究,,WEBLOGIC,里自带此系统,源码在,beaweblogic700samplesserversrcpetstore,。这是学习了解,J2EE,的首选框架。免费。,10.1,框架式编程,10.1.6,常见的,JAVA,框架,(2),Struts,Struts,是一个基于,Sun J2EE,平台的,MVC,框架,主要是采用,Servlet,和,JSP,技术来实现的。由于,Struts,能充分满足应用开发的需求,简单易用,敏捷迅速,颇受关注。,Struts,把,Servlet,、,JSP,、自定义标签和信息资源,(message resources),整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套,MVC,模式,极大的节省了时间,所以说,Struts,是一个非常不错的应用框架。,10.1,框架式编程,10.1.6,常见的,JAVA,框架,(3)Spring Framework,Spring,是一个解决了许多在,J2EE,开发中常见的问题的强大框架。,Spring,提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。,Spring,的架构基础是基于使用,JavaBean,属性的,Inversion of Control,容器。然而,这仅仅是完整图景中的一部分:,Spring,在使用,IoC,容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。,Spring,提供了唯一的数据访问抽象,包括简单和有效率的,JDBC,框架,极大的改进了效率并且减少了可能的错误。,Spring,的数据访问架构还集成了,Hibernate,和其他,O/R mapping,解决方案。,Spring,还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如,JTA,或者,JDBC,事务提供一个一致的编程模型。,Spring,提供了一个用标准,Java,语言编写的,AOP,框架,它给,POJOs,提供了声明式的事务管理和其他企业事务。这个框架足够强大,使得应用程序能够抛开,EJB,的复杂性,同时享受着和传统,EJB,相关的关键服务。,Spring,还提供了可以和,IoC,容器集成的强大而灵活的,MVC Web,框架。,10.1,框架式编程,10.1.6,常见的,JAVA,框架,(4)Hibernate,Hibernate,是一个开放源代码的对象关系映射框架,它对,JDBC,进行了非常轻量级的对象封装,使得,Java,程序员可以随心所欲的使用对象编程思维来操纵数据库。,Hibernate,可以应用在任何使用,JDBC,的场合,既可以在,Java,的客户端程序实用,也可以在,Servlet/JSP,的,Web,应用中使用,最具革命意义的是,,Hibernate,可以在应用,EJB,的,J2EE,架构中取代,CMP,,完成数据持久化的重任。,10.2 MVC,编程思想,10.2 MVC,编程思想,MVC,是什么,MVC,设计模式,MVC,的优点,MVC,的缺点,MVC,例子,10.2 MVC,编程思想,MVC,是什么,MVC,是一种目前广泛流行的软件设计模式,早在,70,年代,,IBM,就推出了,Sanfronscisico,项目计划,其实就是,MVC,设计模式的研究。近来,随着,J2EE,的成熟,它正在成为在,J2EE,平台上推荐的一种设计模型,也是广大,Java,开发者非常感兴趣的设计模型。,MVC,模式也逐渐在,PHP,和,ColdFusion,开发者中运用,并有增长趋势。随着网络应用的快速增加,MVC,模式对于,Web,应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的依据。,10.2 MVC,编程思想,MVC,设计模式,MVC,英文即,Model-View-Controller,,即把一个应用的输入、处理、输出流程按照,Model,、,View,、,Controller,的方式进行分离,这样一个应用被分成三个层,模型层、视图层、控制层,10.2 MVC,编程思想,MVC,设计模式,模型,(Model),:就是业务流程,/,状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是,MVC,最主要的核心。目前流行的,EJB,模型就是一个典型的应,用例,子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的,组件,,但它不能作为应用,设计模型,的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。,MVC,设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。,MVC,并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的,重构,和提高重用性。我们可以用,对象,编程来做比喻,,MVC,定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。,10.2 MVC,编程思想,MVC,设计模式,视图,(View),代表用户交互界面,对于,Web,应用来说,可以概括为,HTML,界面,但有可能为,XHTML,、,XML,和,Applet,。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,,MVC,设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型,(Model),处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。,10.2 MVC,编程思想,MVC,设计模式,控制,(Controller),可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。,10.2 MVC,编程思想,10.2 MVC,编程思想,MVC,的优点,1.,低耦合性。,视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动,MVC,的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。,2.,高重用性和可适用性,3.,较低的生命周期成本,4.,快速的部署,5.,可维护性。,分熟视图层和业务逻辑层也使得,WEB,应用更易于维护和修改,6.,有利于软件工程化管理,10.2 MVC,编程思想,MVC,的缺点,MVC,的缺点是由于它没有明确的定义,所以完全理解,MVC,并不是很容易。使用,MVC,需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。,MVC,并不适合小型甚至中等规模的应用程序,花费大量时间将,MVC,应用到规模并不是很大的应用程序通常会得不偿失。,MVC,设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受,MVC,,并且有能力应付它所带来的额外的工作和复杂性,,MVC,将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。,10.2 MVC,编程思想,MVC,的例子,servlet.java(MVC,中的,C)packagezz;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class servlet extends HttpServlet public voiddoGet(HttpServletRequest request,HttpServletResponse response)throws ServletExcep
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!