设计模式在框架中应用.docVIP

  • 0
  • 0
  • 约3.02千字
  • 约 8页
  • 2018-09-20 发布于福建
  • 举报
设计模式在框架中应用

设计模式在框架中应用   [摘 要]框架是面向对象系统获得最大复用的方式,它作为大型的可复用组件在面向对象应用中使用,应用的大部分设计和代码将来自于它或受其影响。设计模式有助于获得无需重新设计就可适用于多种应用的框架体系结构,一个设计良好的框架应得到多种设计模式的支持。本文先对设计模式和框架进行了阐述,然后通过一个实例具体说明设计模式在框架中的应用。   [关键词]设计模式 框架 复用   作者简介:刘明(1981-),女,汉族,辽宁省朝阳市人,大连交通大学在读软件工程硕士,朝阳师范高等专科学校数计系助教,研究方向:javaweb开发。      一、框架和设计模式的关系   框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。   框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。      二、常见的设计模式   (一)表示层模式   1.Intercepting Filter(截取筛选器)   筛选器构成了一系列独立模块,在将页面请求传递到控制器对象之前,这些模块可以链接在一起以执行一组公共的处理步骤。因为各个筛选器实现的是完全相同的接口,所以它们彼此之间没有显式依赖性。因此,可以在不会影响现有筛选器的情况下添加新的筛选器。您甚至可以在部署时添加筛选器,方法是基于配置文件动态地对它们进行实例化。   2.Front Controller(前端控制器)   通过中央控制器提供请求管理和处理。控制器取代通常发生在表示层的请求,从而取代模型试图控制器(MVC ,Model View Controller)模式的控制器部分,前端控制器管理内容的读取,导航。如上图,可看出Front Controller是系统的一个入口,由他调用相应的逻辑Bean,完成相应的处理工作后,更新视图View,在这里我还想提醒大家一下,有的应用把更新视图(View)的工作交给了相应的逻辑Bean来完成。   (二)业务层模式   1.Session Facade 设计模式   在 J2EE 应用程序中,客户端需要访问由 EJB 所表示的业务对象,以履行其职责并满足用户需求。如果 EJB 客户端通过网络直接访问实体 bean,则势必会进行大量的远程调用,从而导致网络流量增加和性能降低。Session Facade 通过为客户端对象提供底层 EJB 的统一接口解决了此种问题。客户端对象仅与 Facade(无会话状态的会话 Bean)交互,该 Facade 位于服务器上,调用相应的 EJB 方法。   2.服务定位器设计模式   J2EE 通过传递一个唯一的注册 JNDI 名称,使用 JNDI 树来查找、访问和调用业务服务。如果服务被各种客户端使用,那么用于查找对象的代码将以各种形式重复,这使得维护应用程序变得非常困难。该模式通过在单一位置存储所有服务的查找值并在请求时提供解决了这个问题。   3.值列表处理器模式   值列表处理器模式为从数据源中检索大量数据提供了一种有效方式。通常情况下,当应用程序检索大型数据列表时,将整个列表传输至客户端将因响应延迟和需要较多的内存而导致性能较差。该示例使用订单输入场景演示了如何有效地使用值列表处理器模式。   (三)数据访问层模式   1.数据访问对象设计模式   DAO 提供了使用数据源所需的访问机制。数据源可以是一个持久存储(如 RDBMS)、外部服务(如 B2B 数据交换)、信息库(如 LDAP 数据库)或 XML 信息库。本示例应用程序利用基于 Web 的新闻应用程序场景,演示了如何有效使用 DAO 模式。      三、设计模式应用举例创建项目用例   管理员创建一个项目,如下图,该项目包括如下信息:开始和结束时间、顾客名字,以及所需要的技能。   (一)模式确定   使用如下表示模式:   ? 截取过滤器一种检测用户是否具有创建项目权限的过滤器。   ? 前端控制器一种控制器,充当产生项目创建

文档评论(0)

1亿VIP精品文档

相关文档