Cairngorm 介绍

Cairngorm 简介

 

Cairngorm 是一种 MVC 框架,它可以帮助开发者很好的组织代码,分层,从而使得代码更加清晰易懂,可以使设计者,UI 组件开发者,数据服务开发者并行工作,从而提高开发效率。Cairngorm 由五大组件构成,分别作为存放数据的仓库 (ModelLocator),存放服务的仓库 (ServiceLocator),处理业务逻辑的命令 (Command),自定义的用于触发命令执行的事件 (Event),用于把事件映射到命令的前端控制器 (FrontController)。它应用了代理模式,命令模式,观察者和单例等几种设计模式。

 

Cairngorm 优点

 

 

 

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 有关的类。

 

Cairngorm 处理流程

Model部分: 在基于 Cairngorm 的应用程序中,应用程序的数据都放在一个仓库中,这个仓库就是 ModelLocator,整个应用程序只生成维护一个 ModelLocator 的实例,在需要数据的组件中引用这个实例。这就类似于网页开发中的HttpSession的地位, 将整个系统中的数据存储在一个统一的地方, 然后对这些数据进行取值、赋值等操作。

 

View部分: 视图的作用类似与网页开发中的HTML, 在FLEX中一般采用MXML的形式来制作视图, 这些MXML文件中的组件最后会通过ActionScript来实例化最后嵌入SWF中. 视图是通过读取Model中的数据的数据来对视图内的组件进行渲染的.

 

Controller部分: Controller的用处是对View中的事件进行处理并与后台(Http、XML、RemoteObject等形式)数据进行关联。

Controller通过Event来关联视图, 获取视图的监听事件(例如按钮的点击等)。

 

Command部分: 命令通过调用服务代理,执行相应的逻辑,命令 通过更新自身维护的 ModelLocator 的引用,因为 ModelLocator 只有一个,这样就相当于更新了视图。

你可能感兴趣的:(RIA,-,FLEX,-,CAIRNGORM)