Jbpmside要使用Flex开发流程设计器以及管理器,刚好公司的一个内部项目也应用到Flex,大概花了一个礼拜来熟悉和了解Flex。其中发现Flex开发和AJAX开发的很多相通之处,这里把自己对Flex的一些学习心得总结一下。分为三部分,分别是对Riawave框架的介绍、参照Riawave,对自己先前采用的AJAX开发框架的介绍、以及对AJAX前景的一些自己看法。
Flex框架Riawave的定制应用
Flex有很多开发框架,最有名的是Cairngorm。但是Cairngorm太复杂了,职责的细粒度分离带来的是过多的类和代码,不太适合中小项目。这里我们采用了Riawave,准确的说Riawave并不是一个框架,它只是一个通讯录管理的简单代码示例,它包含了很多的***实践。这里想说一点,就是很多时候采用某种技术起决定因素的往往不是技术本身是否先进,而是看该技术的使用者是否众多。
Riawave将应用程序拆分成三部分,分别是Views、ModelLocator、DAO。
◆Riawave 中Views指的是应用里的页面组件,例如表格、表单、菜单等。它的职责:
1、组成整个应用的界面;
2、对组件内部的原生事件进行处理,这些事件指发生在该组件里的鼠标事件和键盘事件;
3、当需要其他组件进行协作时,发布定制事件;
4、对其所关联的数据进行操作;
5、监听其他组件发布的与之相关的定制事件,并做出展现形式上的改变。
◆Riawave 中ModelLocator是整个应用的核心。它的职责:
1、集中存储应用的所有数据;
2、给页面组件提供统一的定制事件监听器接口,即所有的页面组件要对其他组件的定制事件监听则必须通过ModelLocator来进行订阅;
3、唯一的定制事件发布接口,即任何页面组件要发布自己的定制事件都必须通过ModelLocator发布;
4、集中维护所有定制事件的类型。ModelLocator是单态的,通过ModelLocator,应用程序所有的定制事件都被统一管理。
◆Riawave 中DAO负责操作应用的数据。它的职责:
1、改变应用的数据,提供应用数据修改的统一接口,即用户操作页面组件改变数据时,实际上是由页面组件转发给DAO处理;
2、远程访问服务端,Flex通常作为应用程序的前端展现出现,和AJAX一样,数据的操作要和服务器端进行交互;
3、服务器端返回正确的操作结果后,改变ModelLocator里的数据,发布定制事件,触发相应页面组件改变。
◆可以看到,整个Flex应用完全是由事件驱动的。其他需要了解的部分:
1、Flex的DataBinding机制,这个机制实际也是由事件发布/订阅机制实现的,它可以省去自己编写重复的定制事件发布/订阅代码,实现组件展现数据与ModelLocator的数据同步;
2、VO,本地的数据建模、用途:发布定制事件时,通过VO携带组件数据,VO被包含在事件里;传递数据到DAO。
【编辑推荐】
- 使用FlexSDK4时三大注意事项
- FlexBuilder4十大新特性闪亮登场
- Java程序员学习Flex和BlazeDS七大理由
- 揭开Flex正则表达式的神秘面纱
- 技术分享 在Flex中嵌入Flex字体的步骤