1、MVC 体系结构建模和实现的比较与分析1MVC体系结构建模和实现的比较与分析概要这是一个模型的比较研究,它描述了建立在组件的集成,帮助轻松访问 web服务的基于模型-视图-控制器的体系结构范式。MVC 方法简化了三个框架的大规模分布式 web 应用程序的开发和维护水平。首先是 Big Blob 框架,在这所有的处理逻辑是 GUI 的一部分。第二是容易在命令行或 web 接口工作的 MVC 架构。第三是改良的 MVC 架构。在实现阶段,MVC 架构处理 J2EE 和 jsp servlet 的 web 和网络编程环境,还应用多个框架的 MVC 架构给予一些新概念特权(比如 Struts 和Spr
2、ing 组件)。一般术语用户界面,可视化和建模。关键词GUI, COCA, GET, POST, HTTP, Struts, Spring, Model, View, Controller 等。第 1章 介绍现如今,网络存在非常复杂的问题。自从许多公司和组织对编程问题的复杂度和性能要求的提高,不同类型通讯设备的复杂性也跟着提高,业务上要求应用程序使用网络和许多通讯设备。所以随着网络数据承载量的增加我们必须开始重视结构体系的问题。文献的主题是确定 Big Blob、MVC 和改良的 MVC 体系结构的优缺点以及根据体系模型各个方面的实现进行一组比较和分析。接下来用有利于许多框架结构的 JSP-S
3、ervlet 编程实现。MVC 体系结构建模和实现的比较与分析2第 2章 相关工作各种框架已经在文献中提到,我们将在下面进行讨论。2.1 Big Blob体系结构一个常见的风格是将所有的处理放进 GUI 中。一个常见的结构是“Big Blob”地使用这种结构。只要模型,逻辑足够小以至于不值得为之投入一个单独的类,这个工作便是正确的。2.2 MVC体系结构编程和图形用户界面(GUI)库使得更容易实现模型-视图-控制器(MVC)设计。MVC 首次引入了 Trygve Reenskaug 这个 Smalltalk 开发人员 1979 年在施乐帕洛阿尔托研究中心,它有助于分离数据访问和业务逻辑的显示给
4、用户的方式(图 1)。更准确的说 MVC 可以分成以下三个要素。2.2.1 模型模型表示数据和规则管理访问和更新的数据。在企业软件,一个模型通常作为软件近似真实的过程。图 1 一个一般的 MVC 实现2.2.2 视图视图呈现的内容模型。它指定模型数据应该如何。当模型数据变化时,视图必须更新其表示。这可以通过使用一个模型,视图注册到模型的更改通知,或拉模型,视图负责调用模型时需要获取最新数据。2.2.2 控制器控制器将用户的交互与视图转换为模型将执行的行动。在一个独立的 GUI 客户端,用户交互可以单击按钮或菜单选择,而在企业 web 应用程序,他们看起来像 GET 和 POST HTTP 请求
5、。根据上下文,一个控制器也可以选择一个新的视图例如,一个 web 页面的结果用户。2.3改良的 MVC架构最近的一个实现 MVC 设计将控制器放在视图和模型中间的位置。这是常见的苹果 Cocoa 框架的设计(图 2)。cocoa 和 cocoa 触摸框架令 Mac OS X 和 iOS 紧密集成到 Xcode 开发经验中。 cocoa 的高级 api 很容易添加动画,网络、应用程序和本地平台外观和行为而只需要几行代码。图 2 一个将控制器放在视图和模型中间的 MVC 设计MVC 体系结构建模和实现的比较与分析4第 3章 比较 BIG-BLOB、MVC 以及改良的 MVC结构体系“Big Blo
6、b”项目更难阅读,维护和增强。文字不能描述当我开始构建更大的项目时的感觉。只要“ 模型 ”,逻辑,太小,不值得为之投入一个单独的类,便是正常的。然而,混合模型表示通常使程序难以阅读,和程序的不可避免的增长会导致一片混乱。这不能在 web 接口进行简单的独立测试。甚至在这种类型的任何部分还未实现时改变模型。模型-视图 -控制器 (MVC)架构是容易实现图形用户界面(GUI)库,因为它提供了一个真正的脱钩的每一部分。所以改变模型和视图部分变得更容易,它将通知更新模型并且不携带视图的引用,而是使用一个事件通知模型通知感兴趣的变化(图 3)。这个强大的设计的效果之一是,许多视图可以有相同的底层模型。数
7、据模型发生变化时,每一个视图都由一个属性改变事件通知,可以相应地更新本身。图 3 运用 MVC 的 JAVA SE 应用程序3.1 UI模型结构的解决方案模型-视图 -控制器结构可以很容易地画一些可能的解决方案来实现架构。首先单独的用户界面模式使通过这种结构的巨大的改进的朴素易用、增强和维护更容易。其次模型并不知道用户界面。最后,模型通过重写模型类的 toString()方法代表本身的文本或图形。使用 Cocoa 触摸框架的改良 MVC 体系结构使得 Mac OS X 和 iOS 紧密集成到Xcode 开发经验。cocoa 的高级 api 很容易添加动画,网络、应用程序和本地平台外观和行为而只
8、需要几行代码。在这个结构中模型封装应用程序数据,视图显示和编辑数据,控制器调节两者之间的逻辑。通过这种方式分离责任,你最终的应用程序将更容易设计、实现和维护。3.2 MVC架构与 jsp servlet环境MVC 架构能够解决一些问题的 web 和网络编程,但仍有很多东西丢失。它是集中在 JSP 页面的导航中,所以体系结构的观点内有一定发展范围。在这个过程中未来发展是 Model 2 架构。这个问题通过一起使用 Servlet 和 JSP 得到解决。Servlet 处理初始请求和部分处理数据。它设置 bean 然后结果转发到一个 JSP 页面。Servlet 决定列表中的哪个页面将被显示。图
9、4 MVC 架构与 jsp servlet在这个模型中所有的控制和应用程序逻辑都由 Servlet 处理。Servlet 是用 java编程语言编写的。所以它也容易处理的编程 Servlet 的一部分。在这种情况下的服务成为权力全面完整的应用程序,它已成为应用程序的中心点。在模型架构Servlet 成为所有常见任务的看门人。它提供了公共服务,如身份验证、授权、错误控制和应用程序的遵循。此体系结构解决了大部分的问题。但仍有许多新的问题出现时应用此架构。3.3应用结构与多个框架网络和互联网越来越多领域和应用程序的需求正在增长。一个框架是不能处理应用程序的体系结构。满足电流要求的应用程序有必要设计一
10、个体系结构实现框架。Struts 框架设计和开发 web 应用程序的前端控制(图 5)。它提供了各种功能的用户交互的应用程序。它也遵循 MVC 设计特性。Spring 框架是设计来处理各种任务。Spring 的工作桌面和基于互联网的应用程序。它遵循 MVC 的主体。同时使用 Struts 和 spring 框架在单个应用程序与应用 MVC 设计主体,这样可以提高应用程序的性能。Struts 框架包括三个主要模块,简要描述如下。图 5 Struts 模型结构首先是块控制表示完整的模型的一部分。这包含 JSP 文件后为您的应用程序的国际化而写的一套 JSP 自定义标记库。第二块是代表控制器。这是为
11、了导航完整应用程序。这包含 XML 配置文件,它包含标签的导航路径。第三块是模型。这部分业务逻辑的工作,获取和存储数据到数据库中。它包含以下 Java bean Enterprise Java bean 数据库。下面的图显示了 struts 框架中的组件的工作。图 6 Sturts 架构组件3.3.1 Struts中的 MVCSpring MVC 的 MVC 的主要三个部分如下。 Servlet 控制器(控制器)的 Java 服务器页面或其他表示技术(视图部件)应用程序业务逻辑: 任何形式去适配应用程序(模型部分) 。Struts 是一个框架,它实现了一个功能强大且灵活的控制器并基于服务工作模
12、式。Struts 的主要优势是 :集成的灵活性:Struts 架构提供了灵活性选择要使用视图和模型。视图是基于插件的概念。一个插件是一个动态的机制,通过一套组件或组件,实现在我们的应用程序可以通过简单地修改应用程序的配置被另一个取代的特定的功能(图 7)。图 7 Struts 的类图该模型通过 javabean 实现,从而使其与其他框架的集成。它是由 Solid 社区:Struts 是开源范围内合并最重要的组织 Apache 软件基金会的项目。在Sun(Sing,2002),Sun 建议为 Web 层使用 Struts 框架。Struts 由一下三个重要的组件组成:(1) ActionServ
13、let(模型的前端控制器),负责应用程序配置和接收和分析客 户的请求。这个组件配置文件的摘录(strut-config.xml)一般的配置参数,组件的集合,定义其行为(插件),每个请求的属性。执行这些任务之后,它都代表控制这些请求处理器。(2) 请求模式器(请求调度模型中),创建一个实例相关的行动(命令模式)接收到的请求并执行它。(3) 操作模型中(命令)。为每个操作或使用情况下,开发人员创建一个动作( 对象 ),继承自动作组件。在 Struts 配置文件每个动作请求相关联类型。3.3.2 Spring组件在 Spring 也遵循 MVC 的主体。它被设计为桌面和基于互联网的应用程序。Spri
14、ng 包含三个核心合作组件。(1) 控制器:处理导航逻辑与业务逻辑的服务层。(2) 模型:控制器和视图之间的合同包含渲染视图所需的数据填充的控制器。(3) 视图:呈现的请求的响应从模型中获取数据。在 spring MVC 核心组件如下。a) 前置控制器:春天的前端控制器实现。b) 它是第一个控制器进行交互的请求,也可以说它是 Servlet 的一个实现。它控制应用程序的完整流程。c) 控制器:用户创建的组件来处理请求封装导航逻辑代表服务对象的业务逻辑。d) 视图:负责渲染输出。不同的观点可以选择不同类型的输出结果和查看设备的基础上,通信设备。e) 模型和视图:spring 框架的核心部分。它实
15、现了应用程序的业务逻辑。它是由控制器控制。它存储业务逻辑和与之关联的视图。当它执行视图的名称的数据。f) 视图解析器:显示输出取决于收到模型和视图的结果。它是用来实现逻辑视图名称映射到实际的视图。这部分标识和实现输出媒体是什么以及如何显示它。g) 处理程序映射:策略接口使用前置控制器传入的请求映射到单个控制器。它标识请求,并调用相应的处理程序提供的服务。h) 下面的图显示了模型将工作。在这个前置控制器应用程序的入口点。Struts部分执行工作并将请求发送给前置控制器(图 8)。控制器决定处理程序。那么它将调用控制器。模型和视图控制器将执行。图 8 spring 框架的序列流应用程序MVC 体系
16、结构建模和实现的比较与分析10第 4章 提出的方法这种方法是基于应用两个框架 struts 和 spring 应用程序开发场景。序列图的组合应用程序解释如上所述,这是应用程序的主要驱动力。这种方法假定 web 应用程序的基本知识是必要的。上述概念做了一个测试,发现成功的工作。上述体系结构的主要优点如下。(1) 它将提供一个非常干净的部门之间的动作形式等操作,控制器,处理器,javabean 模型和视图。(2) Spring 的 MVC 非常灵活。与 Struts,这迫使你的行动和表单对象具体继承利用两者的优势。(3) Spring MVC 是完全基于接口。每一部分的 Spring MVC 框架是可配置的。(4) 它提供了控制器,使其易于从用户界面处理的请求。(5) JSP 或任何其他技术可以用于显示视图,结果给用户的任何输出设备。(6) Spring 配置控制器通过控制反转。这使得它们易于测试和与其他对象由spring 集成。(7) 与 Struts web 层相比 Spring MVC web 层通常更容易测试 Struts web 层相比,由于避免强迫混凝土继承和显式依赖前置控制器。(8) Struts 框架设计仅为 web 接口的目的服务。spring 框架开发的桌面和网络应用程序。当两个框架作为结合它将提供实现的灵活性。