简介:随着富互联网应用程序 (Rich Internet Application) 的发展,Flex 也得到了迅速的发展, 然后随着 Flex 应用的项目的增大,传统的 Flex 开发已经显得层次不清,维护困难,在这样背景下, 基于 Flex 的 MVC 框架 Cairngorm 应运而生。本文将介绍系统的讲解 Cairngorm,通过本教程的学习 ,您可以全面掌握使用 Cairngorm 框架进行 Web 开发。
Cairngorm 框架简介
Cairngorm 是一种 MVC 框架,它可以帮助开发者很好的组织代码,分层,从而使得代码更加清晰易 懂,可以使设计者,UI 组件开发者,数据服务开发者并行工作,从而提高开发效率。Cairngorm 由五大 组件构成,分别作为存放数据的仓库 (ModelLocator),存放服务的仓库 (ServiceLocator),处理业务 逻辑的命令 (Command),自定义的用于触发命令执行的事件 (Event),用于把事件映射到命令的前端控 制器 (FrontController)。它应用了代理模式,命令模式,观察者和单例等几种设计模式。
Cairngorm 详解
ModelLocator: 用于保存应用程序的数据,与 HttpSession 类似,区别主要在于数据是保存客户端 ,实现时将 ModelLocator 实现为单例,所有的应用数据都存储在唯一的一个 ModelLocator 对象中。
CairngormEvent: 这个类由 Cairngorm 框架提供,位于包 com.adobe.cairngorm.control,所有的 自定义的事件类都必须继承 CairngormEvent,在自定义事件类中定义 VO 的引用,可以通过它来存储从 View 层传递过来的 VO。
ICommand: 命令接口,位于包 com.adobe.cairngorm.commands,每个命令类需要实现 ICommand 接 口,命令类用于处理业务逻辑,通过实现其 execute 方法来实现业务逻辑。execute 方法以事件作为参 数,通过传入的事件中包含的详细信息来进行相应的处理。
FrontController: 前端控制器,位于包 com.adobe.cairngorm.control,自定义的前端控制器必须 继承 FrontController,它主要用于完成 CairngormEvent 和 ICommand 之间的映射。
CairngormEventDispatcher:CairngormEvent 的分发器,位于包 com.adobe.cairngorm.control
Delegate: 服务代理,一般定义一个 Delegate 类,持有 ServiceLocator 的引用,Delegate 类是 唯一的了解 Service 有关的类。
系统处理流程
图 1. 使用 Cairngorm 后系统处理流程