11-J2EE架构与程序设计(J2EE Web应用设计模式).pptVIP

11-J2EE架构与程序设计(J2EE Web应用设计模式).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11-J2EE架构与程序设计(J2EE Web应用设计模式)

J2EE架构与程序设计 主讲:李伟刚 liweigang@nwpu.edu.cn 西北工业大学软件与微电子学院 第11章 J2EE Web应用设计模式 主要内容 设计模式概述 业务层模式 展现层模式 设计模式概述 什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结 A software design pattern is “a repeatable solution for a commonly-occuring software problem.” 设计模式已被其他开发者使用、测试和改进,你不需要“重复发明轮子” 设计模式概述 Web应用开发的目标 满足功能需求 为最终用户提供一个可靠、有用和正确的体验 满足非功能需求 性能需求 缩短响应时间 提高吞吐量(支持大并发量) 模块化:提高了可分布性和复用性 柔性:提高系统处理业务变更的能力 可维护性:方便升级和管理 可扩展性:应对未来技术和需求扩展的能力 设计模式概述 设计原则 面向接口编程 隐藏复杂性 分离关注点(concern),提高内聚力(cohesion) Cohesion: a measure of how well the lines of source code within a module work together to provide a specific piece of functionality. In object-oriented programming, the degree to which a method implements a single function. Methods that implement a single function are described as having high cohesion. 设计方法 松散耦合 远程代理 声明式控制 业务层模式 单JVM上运行的MVC 业务层模式 JNDI Java Naming and Directory Interface 用于访问命名和目录服务的API JNDI在网络中提供了一个查找对象的集散地 用JNDI注册想让其他程序找到并访问的对象 程序通过JNDI查找所需对象 JNDI使得在网络上重新部署对象变得非常容易 RMI Remote Method Invocation RMI使网络上的对象相互通信变得十分容易 业务层模式 RMI基本原理 被调用的对象 注册对象 创建一个代理 调用对象的客户端 查找注册的对象 获得远程代理的一个拷贝 在远程代理上执行调用,就好像调用本地对象上的方法 远程代理(称为客户桩:stub)处理所有的底层通信细节,如socket,I/O流,TCP/IP,序列化和反序列化方法参数和返回值,处理异常等等 服务器端的代理称为“骨架(skeleton)”,在远程对象所处的服务器端执行与stub类似的行为 业务层模式 为控制器添加RMI和JNDI 业务层模式 业务代表(business delegate) 隐藏JNDI查找的复杂性 隐藏远程调用的复杂性 详细工作过程 获取请求对象并执行JNDI查找 获得一个客户桩 调用业务方法 处理和抽象任何远程异常 将返回值传回控制器 业务层模式 服务定位器(Service Locator) 提供查找服务 将JNDI查找逻辑从业务代表中分离出来 使业务代表只处理业务方法,增强了其内聚性 详细工作过程 获得一个InitialContext对象 执行远程查找 处理远程问题,比如异常等 可以将查找的对象引用置入缓存 业务层模式 在JSP中避免远程的模型操作 业务层模式 数据传输对象(data transfer object) JSP直接使用stub带来的问题 细粒度的网络调用是一个性能瓶颈 带宽限制 每次调用开启一个独立的数据库事务,增加数据库负荷 JSP不容易处理异常 使用一个plain old bean代替stub 序列化的Java对象,包含了许多实例变量 从业务代表中返回数据传输对象 业务层模式 业务层模式总结 展现层模式 实际Web应用中的MVC 对每个use case,有相应的一套M,V,C组件,它们可能以各种方式混杂和纠缠在一起 虽然每个use case遵循面向对象原则,但是各个控制器代码重复,维护性和柔性不好 展现层模式 通用的MVC控制器 缺乏内聚力 与模型和视图组件紧耦合 展现层模式 从三个主要功能改进MVC控制器 处理请求参数 将这个任务交给一个独立的表单校验组件,它可以获得表单参数,完成转换、校验、处理校验错误,并创建一个对象保存参数值 调用模型 不能把模型硬编码到控制器中,可以用声明式的方式将模型写在自定义的DD中,控制

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档