两种典型的mvc模式的对比分析.docxVIP

  • 1
  • 0
  • 约3.61千字
  • 约 4页
  • 2023-08-26 发布于广东
  • 举报
两种典型的mvc模式的对比分析 在应用开发人员的过程中,每个问题都需要根据实际应用找到解决方案。为了提高开发效率,并增加应用系统的灵活性、安全性、实用性等,采用好的设计模式变得相当重要。随着Internet的迅速发展,Web应用程序开发技术已经发展到基于J2EE、CORBA、.NET等分布式应用技术方面。面对新的更复杂的应用,迫切需要更好的设计模式指导Web应用程序开发过程。 Model-View-Controller(MVC)设计模式被证明是有效的开发模式之一,它将访问和数据的表现进行了分离。通过MVC模式,可以开发具有伸缩性、便于扩展、便于整个流程维护的应用软件。但由于MVC在不同的程序逻辑之间要保持清晰的界限,因此,在不同层次之间的通信会有性能上的损失,交换客户与服务器之间的回路信息会消耗大量的系统资源。且每个控制器直接与业务逻辑相关,当业务逻辑改变时,所有与此逻辑相关的控制器都要改变。为克服MVC模式的以上缺点,本文提出对MVC模式进行改进。其核心思想是,MVC模式里加入Facade模式成为MVCF模式,并进一步加入Delegate模式成为MVCDF模式,从而减少通信信息量,并增加应用程序开发的灵活性。本文把MVCDF模式应用于基于J2EE架构的供应链管理系统(SCM),表明这种设计模式的改进是行之有效的。 1 ccf模式1的改进之一 1.1 基于专网的会话ejb 为了减少客户端与服务器之间通信的频繁度,我们将MVC模式和Facade模式相结合成为MVCF模式。Facade模式的特点是:为子系统中的若干接口提供了一个统一的接口,它定义了一个更高层次的接口,使子系统更容易使用。Session Facade采取的是会话EJB的形式,通过Session Bean可以把构成子系统的一套业务对象“包装”在Session Bean中。这样,Session Facade作为客户端访问业务对象的拦截器,屏蔽了业务对象。控制器通过访问Session Bean来访问业务对象。当控制器需要调用多个业务对象的方法时,它只需要进行一次粗粒度的远程方法调用,将请求送给Session Facade,再由Session Facade通过本地方法调用,调用相应的业务对象,执行其方法。这样减少了客户端和业务对象之间的耦合度,同时客户端也不必管理事务的细节,减轻了网络负载,提高了系统性能。并且当业务对象的方法改动时,只需要修改Session Bean,而客户端可以保持不变,从而使应用系统更容易维护、升级。 1.2 facade模式 在MVC的Web应用模型基础上,在业务层和业务实现层(EJB)之间加入Facade层,此时Web应用程序模型如图1所示。Session Fa?ade起到屏蔽了业务对象的作用。客户端通过访问Facade来访问业务对象。当EJB客户端调用多个业务对象方法时,它只需要进行一次粗粒度的远程方法调用,将请求送给Facade,再由Fa?ade用本地方法调用相应的业务对象,执行其方法。显然当业务对象的方法改动时,只需要修改Session Bean,而客户端可以保持不变。 Facade是一个会话Bean。编写Fa?ade会话Bean代码时不需要实现业务逻辑,只提供接口供客户端调用。 MVC模式中引入Facade模式具有如下优点: (1)严格分离了业务逻辑和表示层,降低系统的耦合度,提高可管理性。 (2)提供了粗粒度的访问,在分布式环境下,可降低网络开销,提高系统性能。 2 mvdf模式改进 2.1 基于web-w最终的应用程序实现 MVCDF模式即在MVCF模式的基础上加上Business Delegate业务委派模式。一个业务委派是一个完全的Java类,它起到客户层和服务层的媒介的作用。客户层局部地调用业务委派的方法。创建一个业务委派层就能实现用Java类隐藏EJB API的复杂性,通过概括代码请求来显露、委派和恢复来自会话和消息Facade EJB层的访问。 应用程序规划中复杂的问题之一是业务层和实现层之间的必要分隔。人们一直关心将应用和表示逻辑与业务逻辑分隔开。Business Delegate可以作为一个业务服务的客户方抽象使用。它可以潜在地直接与各业务组件协同工作,或者可以作为一个Session Facade的网关供客户方使用。业务委派可以负责所有的专门EJB交互,为客户提供一个本地接口。并可以把远程异常映射到有意义的应用程序异常。Business Delegate是执行客户方业务信息缓冲存储的逻辑位置,可以处理值对象或者重试失败的调用以及对不同服务器的故障恢复。 2.2 基于业务先进的管理技术 在上面的MVCF的Web应用模型基础上,在业务层和Facade层之间加入一个Delegate层,就得到MVCDF模式的Web应用模型(如图

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档