首页 > 其他分享 >GXT之旅:第七章:MVC——标准的MVC与GXT MVC

GXT之旅:第七章:MVC——标准的MVC与GXT MVC

时间:2022-12-06 11:04:14浏览次数:57  
标签:模式 GXT controller MVC 第七章 Model view


第七章:Model View Controller

本章我们要了解GXT的MVC架构,以及学习他们在一个大型的应用系统里是如何系统工作的


我们会涉及到如下GXt功能集

  • AppEvent
  • EventType
  • Controller
  • View
  • Dispatcher

一个好应用的需要

当我们在使用GXT搭建一个应用的时候,我认为最重要的是要如何去搭建他。当我们项目在构建的时候,会很容易的发现各种各样的问题。比如组件越来越多,耦合度越来越大,这会变得很难去跟踪和管理。这些情况会导致噩梦般的维护成本(当然了,也给我们程序员创造了更多的就业机会

)。



对于桌面还是web可视化应用程序来说,目前最流行的就是Model View Controller模式的架构方案。所幸,GXT提供了基于的MVC模式实现方案,在此方案上架构的应用可以避免不少麻烦!


经典的MVC模式

MVC是一个非常流行的设计模式,虽然有几个不同的变化,但是基本上是由各尽其责,互相协同工作的三部分组成的:

  • Model:他负责管理,状态,数据和应用逻辑。他提供接口,允许其管理的内容被检索和修改。支持Observer设计模式,可以通过注册与唤醒的方式,作为状态改变的响应。
  • View:是用户的操作接口。通过用户对数据的请求,View作为响应则从Model里获得状态改变的内容,并展示给用户。当用户与view所提供的接口互相作用,互相影响到时候,view层提供了event,会通过controller被触发事件。view层不需要考虑任何controller的工作原理。
  • Controller:controller会作为一个observer的角色,监听view层所触发的events。也可以修改model或者view的结果集。

这种模式的好处就是,可以让model层不需要去了解controller和view层是如何工作的,从而让model与controller和view之间的没有彼此的依赖性。

GXT MVC

GXT的MVC模式有一点不同的传统的MVC模式,但是非常有用的!


  • Model:他是存储ModelData的Store的一种表现形式。专门负责:通过get方法,从Store里获得ModelData,通过set方法,修改ModelData。
  • View:他负责组织所有的UI components。就像传统的MVC模式一样,data-backed components 检测Model的状态,当有变化的时候,会作出响应。跟传统MVC不同的是,一旦view管理的components被灌入了Model里的数据,随着用户的操作,components就会联动的修改Model里的数据。view使用分配器去派发事件,然后通过controller控制事件的响应。按照GXT的设计模式,view需要通过其构造函数去关联有关controller层的对象。虽然这样有些打破了传统的MVC模式——view层和controller层没有完全的解耦合。
  • Controller:在传统的MVC模式里,Controller通过派发器对view层发出的事件作出响应。在GXT MVC的模式里,他也可以表现为Model层面的某些操作,或者可以将事件转发到别的view里。
  • Dispatcher:Dispatcher的存在是为了避免view层直接调用controller, view通过dispatcher传播event。Dispatcher类提供一些静态方法可公调用,用来将event传递到controllers里面。controller会注册这些dispatcher,用来获得专门的事件类型。


标签:模式,GXT,controller,MVC,第七章,Model,view
From: https://blog.51cto.com/u_15903664/5915162

相关文章

  • 线上服务异常的定位、处理与优化的探索 - 第七章 总结
    一.1. 如何减少线上服务问题 1. GC部分v 尽早释放不使用的对象,特别注意一些复杂的数组、队列这些对象之间关系复杂相互引用,GC回收他们效率较低。如果程序允许,尽早将......
  • SpringMvc个人理解
    SpringMvc执行流程(1)浏览器提交请求到中央调度器(2)中央调度器直接将请求转给处理器映射器。(3)处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后返回......
  • mvc,mvp,mvvm 的区别
    这三者都是框架模式,它们设计的目标都是为了解决Model和View的耦合问题。MVC模式出现较早主要应用在后端,如SpringMVC、ASP.NETMVC等,在前端领域的早期也有应用,如Backbone......
  • 《DFZU2EG_4EV MPSoc之FPGA开发指南》第七章 Verilog HDL语法
    VerilogHDL语法​VerilogHDL(HardwareDescriptionLanguage)是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。VerilogHDL可以在......
  • extjs4,spring mvc3上传文件
    本文讲解下extjs4结合springmvc3的注解完成上传文件的例子。1页面文件  <!--ExtJSFiles--><linkrel="stylesheet"type="text/css......
  • springmvc注册fastJson报错
    原因:依赖版本问题这是我原本引入的依赖,版本是1.2.24<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId......
  • spring mvc3及mvc 3.2中的异常处理小结
    在springmvc3中,处理异常的是试用exceptionresolver去做异常,先来个简单DEMO看下:1)自定义异常类publicclassSpringExceptionextendsRuntime......
  • spring mvc中的拦截器小结
    在springmvc中,拦截器其实比较简单了,下面简单小结并demo下。preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们......
  • 十、MVC三层架构
    什么是MVC:ModelviewController模型,视图,控制器10.1、早些年Servlet和JSP都可以写Java代码,为了维护和使用;Servlet专注于处理请求,以及控制视图跳转,JSP专注于显示数据用......
  • springMvc04(json数据传递参数)
    一、集合参数(JSON格式)1.1-导入"JSON"坐标(通用设置一次就可以)<!--springmvc需要的json相关坐标--><dependency><groupId>com.fasterxml.jackson.......