[Flex]Mate Flex Framework 流程介绍之One-way Communication

Mate Flex Framework 流程介绍:
Mate Flex Framework 流程介绍之From views to business logic
Mate Flex Framework 流程介绍之Dispatcher and ResponseHandler tags
Mate Flex Framework 流程介绍之Listener tag
Mate Flex Framework 流程介绍之Using an adapter
Mate Flex Framework 流程介绍之Using view injection

本来还剩下一篇文章:《介绍Mate Flex Framework里面比较重要特性:extensions》

而这个功能也是属于Mate比较高级的功能,但是为了让大家更加的可以巩固之前的内容,因此extensions的介绍我打算先放一下,先系统的介绍一下Mate Framework的流程。
 
本次介绍的是一个比较简单的流程:从视图发送消息给逻辑层(from veiws to business logic)
请先看一下流程图:

 
由于原图已经把这个简单的流程进行了一些翻译,但是我在上图中去掉了这些解释,原因是想用自己的语言来进行描述,而非翻译英文的方式。
 
okay,那么我们开始吧:(我会结合上几个例子来进行翻译的)
 
1、视图会触发消息(dispatchEvent( new MyEvent( MyEvent.CLICK_ME )); )
     当触发了 MyEvent.CLICK_ME后,Mate Framework会把这个event送到被称作一个“Event Bus”的地方(请大家注意:这个EventBus是虚拟的,并不是存在于我们的实体代码里面,或者说是Mate的逻辑机制)
2、而Event Bus会将这个触发的Event告诉事件地图(Event Map)。
      Event Map里面会事先做好一些事件的处理逻辑(即定义好一些EventHandler)
3、在这些定义好的EventHandler里面,会有一组动作来响应这个Event(即从Event Bus送过来的 myEvent.CLICK_ME)
      在之前的例子中,我们定义的EventHandler的结构是:
      <EventHandlers type="{ MyEvent.CLICK_ME }">
          <MethodInvoker generator="{ A }" method="myEventHandler" />
      </EventHandlers>
      其中黑色斜体的就是我们要执行的动作(使用MethodInvoker来触发A.mxml中的myEventHandler这个方法,同时我们也可以使用其他的一些Mate标签,例如传入参数等。
      而在上图中,它除了调用MethodInvoker外,还调用了调用了ServiceInvoker。
4、同时根据流程图的顺序是:首先调用的是ServiceInvoker,从而返回一些结果值。然后调用的MethodInvoker。
      例如将调用ServiceInvoker得到的一些返回值,传送给MethodInvoker指定的某个class。
 
通过以上的步骤就完成了简单的Mate事件处理。
 
我在总结一下这个简单的流程:
首先分派MyEvent.CLICK_ME,然后会给一个叫做Event Bus的虚拟机制(我想应该是Mate Flex Framework的核心逻辑),同时Event Bus会将分派的内容传送给EventMap里面指定的EventHandler(分派的标识即时Event Type)。而在EventHandler里面会定义一些动作,同时按照一定的顺序来执行这些动作(例如加入负责处理Service的ServiceInvoker、或者处理method的MethodInvoker等)
 
是不是很简单呢?那么下一次我将会介绍一个稍微复杂一些的流程:双向通讯:分派和响应标签(two-way Communication:Dispatcher and ResponseHandler tags)。