天天看点

Flex Cairngorm之旅(小项目实例)

  • 引言:做flex开发有一个月了,对Flex Cairngorm有了一点初步的了解,写了一个小程序希望大家互相探讨学习交流。
  • 完成时间:两个晚上
  • 项目介绍:登录后台管理用户,用户信息存储在xml文件里,可以实现增、删和修改用户的信息。
  • 所用技术:Flex /Cairngorm/ Xml /HttpService /Actionscript3.0/ FlashDebug etc.
  • 项目截图:看文章底部附件
  • Cairngorm 框架介绍:

Cairngorm 是 Abode 推出的 Flex RIAs 框架,其实是 MVC 的发扬光大,它由七大部分组成。

1.  Model( 数据模型 M) :使用 singleton( 单例 ) 模式共享变量;

2.  VO( Value Object) :储存特定值对象变量。

3.  View( 视图 V) :将 Model 的数据绑定互组件并广播侦听 Cairngorm Event ;

4.  Controller( 控制器 ) :侦听 Cairngorm 事件并将其映射到 Cairngorm Command ;

5.  Command( 命令 ) :调用 Cairngorm Delegate 或其它 Command ,并更新 Model ;

6.  Delegate( 委托 ) :实例化 RPC( 远程过程调用 ) 并将其结果返回给 Command ;

7.  Business( 业务 ) :定义 RPC 。

cairngorm 框架 定义了一种开发体系,并以此来规范开发者对项目代码的划分。这个体系包括以下几个部分。

1 :值对象 VO

值对象用来定义基本的数据结构,强化数据类型,以便在应用程序的各层之间传递数据进行严格的数据类型检测。通常服务器端返回的数据都应在客户端序列化为相应的值对象类型。提供了 ValueObject ,和 IValueObject 。建议开发人员在创建值对象类时实现该接口。

2 :数据模型 Model

cairngorm 的 model 提供了 ImodelLocator 和 ModelLocator 的模型定位器接口, ModelLocator 有 IModelLocator 派生,实际应用的时候我们需要实现他们的类和接口,来集中放置应用程序中的全部数据和状态。

3 :视图层 View

cairngorm 的 view 提供两个类 ViewHelper 和 ViewLocator 。它们是用来控制视图层代码的。 ViewHelp 用来封装视图的代码,一边控制层和视图层的分离。 ViewLocator 是用来管理和存放视图的 ViewHelp 以便统一管理。

4 :命令 command

cairngorm 里的 command 包中包行 Command , I Command 和 sequenceCommand 类, Command 是有 Icommand 派生的。所有这些接口都实现 execute ()方法 。该方法接受 cairngormEvent 类型参数。 sequenceCommand 类是用来创建队列中的命令。在实际应用中有时候会连续调用多个命令。因此 sequenceCommand 提供了 nextEvent 属性和 executeNextCommand() 方法。 nextEvent 属性用来指定下一个 command 相应事件, executeNextCommand ()会派发由 nextEvent 属性指定的事件与该事件响应的方法就该执行。

5 :控制器 control

cairngorm 的 cotrol 包中包含 cairngormEvent 和 cairngormEventDispatcher 和 FrontController 类。 cairngomEventDispatcher 是一个单例模式。它提供了一个事件派遣器的实例,所有 cairngormEvent 类型的事件都是由它派遣的 。使用这种方法可以简化传递过程,在应用的任何地方,只要对 CairngormEventDispatcher 的实例进行侦听就可以捕获到相应的 c airngormEvent 事件。 FrontController 类是用来建立事件与命令直接的映射关系的。

6 :业务逻辑 Business

Business 包提供访问远程服务器所需要的类和接口,通常我们只需要使用其中的两个, ServiceLocator 和 Respnser 接口。 serviceLocator 是单例模式的类,用来提供服务器的远程调用 RPC. 这种调用通过 HTTPService , WebService , RemoteObject 进行。而这些远程访问的结果都有 Responser 接口类执行。

7 :委托类 Delegate 将 Command 和服务器连接起来, Command 通过 Delegate 调用服务器又从服务器里获得返回结果传给 Command 。

继续阅读