RiaWave是一个轻量级的flex快速开发框架。
跟Cairngorm比起来,它更适合中小型的项目。
如下图:
Riawave将应用程序拆分成三部分,分别是Views、ModelLocator、DAO。
Views指的是应用里的页面组件,例如表格、表单、菜单等。
它的职责:
1、组成整个应用的界面;
2、对组件内部的原生事件进行处理,这些事件指发生在该组件里的鼠标事件和键盘事件;
3、当需要其他组件进行协作时,发布定制事件;
4、对其所关联的数据进行操作;5、监听其他组件发布的与之相关的定制事件,
并做出展现形式上的改变。
ModelLocator是整个应用的核心。
它的职责:
1、集中存储应用的所有数据;
2、给页面组件提供统一的定制事件监听器接口,即所有的页面组件要对其他组件的定制事件监听则必须通过ModelLocator来进行订阅;
3、唯一的定制事件发布接口,即任何页面组件要发布自己的定制事件都必须通过ModelLocator发布;
4、集中维护所有定制事件的类型。ModelLocator是单态的,通过ModelLocator,应用程序所有的定制事件都被统一管理。
DAO负责操作应用的数据。
它的职责:
1、改变应用的数据,提供应用数据修改的统一接口,即用户操作页面组件改变数据时,实际上是由页面组件转发给DAO处理;
2、远程访问服务端,Flex通常作为应用程序的前端展现出现,和AJAX一样,数据的操作要和服务器端进行交互;
3、服务器端返回正确的操作结果后,改变ModelLocator里的数据,发布定制事件,触发相应页面组件改变。
可以看到,整个Flex应用完全是由事件驱动的。其他需要了解的部分:
1、Flex的Data Binding机制,这个机制实际也是由事件发布/订阅机制实现的,它可以省去自己编写重复的定制事件发布/订阅代码,实现组件展现数据与ModelLocator的数据同步;
2、VO,本地的数据建模、用途:发布定制事件时,通过VO携带组件数据,VO被包含在事件里;传递数据到DAO。