GXT MVC

1.Dispatcher是整个MVC结构的调度中心,是发号命令的指挥所,是Controller的容器,所有的Controller必须通过Dispacther的add()函数向这个指挥所报到,以便由它统一调度安排,即进行消息的路由。

 

2.每个Controller在报到前,通常得告诉Dispather这个调度中心,我能做什么,我对什么样的命令有责任,或者说对什么样的事件感兴趣。这通常是在Controller的构造函数中,通过registerEventTypes ()函数注册自己关心的事件,以便调度中心发出相应的指令、或者说什么事件发生时,去执行相应的任务。这个可以通过Mail示例中,各Controller子类的构造函数清晰的看到。

 

3.各Controller完成报到后,即进入待命状态,随时接受调度中心的安排,以完成任务。

 

4.当用户或系统向指挥所下达一条指令时,如Mail示例初始化时,通过向Dispatcher发出了Login的登录指令,调度中心即Dispacther,随即在内部对各报到的Controller进行逐一询问,都有谁要参与这次任务,找到一个后即刻下达任务,再询问下一个Controller。注意,这里任务的下达,是要讲先来后到的,即谁先报到谁就先领受任务。至于自己在接到任务后,都要干什么,这个是下一步紧接要描述的。

 

5.各Controller接到调度中心的任务,准备执行前,调度中心得检查你准备好没有,没有准备好,即会让Controller通过自己的initialize() 函数进行出发前的准备工作,即进行必要的初始化。

 

6.Controller完成准备工作后,随即根据指令,开始自己执行相应的任务。这是通过各Controller的handleEvent ()来领命受命的。

 

7.到这一步,Dispacther调度中心就完成了任务的下达指令,和各Controller任务的执行流程,即完成了消息的路由。各Controller完成任务后,通过forwardToView (),向调度中心提交任务完成报告,即进行View视图的呈现。当然,各Controller 在执行任务的过程中,也可以请求Dispatcher的协助,通过Dispatcher.forwardEvent ()来进行消息的路由。

 

8.View在接到Controller生成任务报告时,也可能要进行必要的准备工作,如视图的构建、布局等,这是通过View的initialize () 来进行的。当然,也不一定要在这里进行初始化,视图也可以根据Controller下达的不同命令来执行不同的视图构造,初始化等,因此在完成初始化后,视图的handleEvent () 紧接着也随即执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值