本系列文档力求通过简洁的讲解和简单的例子使开发者能快速地掌握基于Cairngorm的Flex程序的设计过程,在后面的文档中后台语言将以JAVA为例,并介绍笔者在实际开发过程中应用的比较稳定的Flex+J2EE框架,希望能对想学习或应用Cairngorm的开发者提供一定的帮助。
本文档的目标读者是这样的开发者:他至少有点熟悉Flex,开发过一些基于Flex的应用程序,有点熟悉Cairngorm框架或有一些设计模式的基础,后面的文档要求读者最好了解一些JAVA的知识。由于本人还要上班,所以后续文档可能发布的有点慢,请读者见谅。
什么是Cairngorm呢?Cairngorm从根本上来说是将程序代码按照逻辑功能(按数据、用户视图、以及起控制作用的代码)分块的一种方法论。这个方法论被归纳为MVC,或者说是Model(模型),view(视图),和Control(控制).熟悉struts的网友可结合Struts的MVC模式来理解。
1,Cairngorm的6大元素
6大元素包括:VO,view,model,control,commands,business
1.1,ValueObject,也就是Cairngorm六大元素中的VO,它提供数据的“结构”。例如一本书由书名、作者、和价格组成,那么这个ValueObject(这里要取名为BookVO)就包含bookName,bookAuthor,bookPrice等属性。ValueObject为Model的ModelLocator提供某些数据的数据“结构”,以便给view绑定。
1.2,View(视图):一个或多个Flex组件(button,panel,comboBox,label等等)组合在一起开成的一个特定的个体,使用model的ModelLocator中绑定的数据,并且针对用户的交互操作(点击,鼠标滑过,拖拽等)产生的自定义Cairngorm Event.
1.3,modelLocator:装着所有的与view绑定的变量(包括VO和其它类型数据),当ModelLocator中的变量变化后,view相应显示的数据也随之变化,反之ModelLocator中的变量也发生变化。所以只需要操作modelLocator中的变量就能可达到view的不同显示的目的。
1.4,control(控制):包括FrontController(前端控制器)和events(自定义事件),前端控制器监听不同的events,并且将不同的event映射到不同的Cairngorm Command进行处理,自定义的event可挟带任何形式的数据带到command中,从而达到数据传送的目的。Event 和 command 的对应关系就类似于struts1.2的struts-config.xml文件。
1.5Command(命令):处理业务逻辑,主要的处理逻辑都在它的execute方法中,在execute方法中,通过调用Cairngorm Delegates 或者 其它的Commands,甚至什么都不调用,以达到更新ModelLocator存绑定的变量的目的。如调用了CairngormDelegates,一般用onResult接收CairgormDelegates执行成功时的返回值,用onFault处理CairngormDelegates执行失败的情况。
1.6,business包括Delegate(代理)和Service(服务):Delegate由一个Command创建,它将远程过程调用(http service ,web Service,DataService等)实例化并将结果返回给该Command。Service定义连接到远程数据库的远程过程调用(Http service,web Service,DataService等),总结为command通过Delegate调用Service.后面的文档将举一个通过Delegate调用服务端Java的DataService的例子。
2,Cairngorm的工作流程
Cairngorm的工作流程可总结为以下6句话:
2.1,Front Controller Listens for User Gestures
前端控制器监听用户的行为。注意它只是监听事件并把事件映射到某个Command,并不会进行任何的业务处理。
2.2,Commands Do All the Work
Command几乎做了所有工作。系统的业务逻辑大部分都集中在Command中,所以我们的主要时间是花在写Command.
2.3.Delegate Server-Side Business Logic to Business Delegates
把服务器端的业务逻辑委托到 Bussiness Delegates中。因为很多时候command需要获得服务器端数据,所以这样一来它可以直接调用Bussiness Delegates而不用关注如何连接数据的细节,实现了信息隐藏。
2.4.Business Delegate Finds Services with the Service Locator
Command调用Business Delegate 后,Business Delegate 通过Service Locator来找到相应的RPC services,然后执行实现从服务器端取数据。
2.5.Transfer Data as Value Objects
把传输过来的数据存储为Value Objects。这点大家应该都很熟悉,比如想要查询一个公告,就必定创建一个公告类,来存储每一个公告的标题等信息。
2.6.Store State in the Model Locator and Let Model Notify View
在Model Locator 保存状态并且能使Model检测到View的变化。这样一来用户操作就能直接影响Model,比如添加物品到购物车,Model中的购物商品就会自动增加。
下图为从网上找到的Cairngorm工作流程的图解,我认为能很好地说明Cairngorm工作流程,可以说把这个图理解好了,便已经理解好了Cairngorm的工作流程:
本文档中的某些内容难免参考了其它一些文章,如有相似之处,望见谅
相关推荐
Flex Login with Cairngorm Flex是一种基于Adobe Flash Platform的开源框架,用于构建富互联网应用程序(RIA)。Cairngorm是Flex社区中广泛使用的轻量级MVC(模型-视图-控制器)框架,它帮助开发者组织和管理复杂的...
Flex Cairngorm框架生成器是一款专门针对Adobe Flex开发的工具,旨在简化Cairngorm框架的应用构建过程。Cairngorm是ActionScript和Flex社区中广泛使用的轻量级MVC(Model-View-Controller)框架,它帮助开发者组织和...
Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...
Flex Cairngorm框架是Adobe Flex开发中的一个轻量级MVC(Model-View-Controller)框架,它旨在帮助开发者组织和管理复杂的Flex应用程序。Cairngorm由Adobe贡献给开源社区,是ActionScript 3.0的一个流行架构选择,...
Flex Cairngorm是一种基于Adobe Flex的轻量级MVC(模型-视图-控制器)框架,主要用于构建富互联网应用程序(RIA)。Cairngorm最初由Iteration:Two开发,随着Adobe Flex 2和ActionScript 3的发布,它成为了Adobe官方...
Cairngorm是Flex社区中流行的一种轻量级MVC(模型-视图-控制器)设计模式实现,旨在帮助开发者组织和管理Flex应用程序的复杂性。 在"flex cairngorm 写的一个小例子"中,我们可能看到一个实际的Flex项目,它演示了...
Flex Cairngorm之旅,这是一次深入探讨Adobe Flex框架Cairngorm的实践教程,旨在通过一个小项目的实例来展示Cairngorm如何在实际开发中发挥作用。Cairngorm是面向服务架构(SOA)的轻量级MVC(Model-View-Controller...
Flex Cairngorm框架是一个强大的轻量级MVC(模型-视图-控制器)架构,用于构建富互联网应用程序(RIA)。这个框架是Adobe Flex开发者社区中的一个流行选择,它旨在提高代码组织、可维护性和可扩展性。让我们深入探讨...
《Flex Cairngorm与FABridgeDemo深度解析》 在当今的Web开发领域,富互联网应用程序(Rich Internet Applications,简称RIA)已经成为一种趋势,而Adobe Flex作为一种强大的RIA开发框架,深受开发者喜爱。Flex以其...
Flex Cairngorm框架是Adobe Flex开发中的一个著名轻量级MVC框架,它为构建大型、可维护的Flex应用程序提供了结构和指导。这份"flex Cairngorm 开发文档中文版.pdf"是开发者们理解并掌握Cairngorm框架的重要参考资料...
Flex Cairngorm实例详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式来组织复杂的Flex项目,以实现可维护性和可扩展性。本实例将深入探讨...
cairngorm.swc供需要的朋友急用
Flex Cairngorm框架是Adobe Flex开发中的一个轻量级、基于MVC(Model-View-Controller)设计模式的架构框架,旨在帮助开发者更好地组织和管理复杂的Flex应用。这个框架最初由Adobe公司内部开发,后来成为了开源项目...
在开发 Flex 应用程序时,Spring Actionscript IOC 框架和 Cairngorm MVC 模式结合使用,可以显著提升代码的可维护性和可扩展性。Spring Actionscript 是一个针对 Actionscript3 设计的轻量级框架,其灵感来源于 ...
Cairngorm是Flex社区中流行的一种轻量级MVC(Model-View-Controller)框架,它提供了一种结构化的方法来组织和管理Flex项目的代码,从而提高开发效率和代码可维护性。 Cairngorm框架的核心组件包括: 1. **模型...
Flex Cairngorm Java实例是一个基于Adobe Flex的项目,它整合了Cairngorm框架和Java后端服务,用于构建高效且可扩展的 Rich Internet Applications (RIA)。Flex是一种开源的、基于ActionScript的开发工具,用于创建...
Flex Cairngorm 框架是一个面向Flex开发者的重要工具,尤其对于那些致力于构建大型、可扩展的MVC(Model-View-Controller)架构的应用程序。这个框架为ActionScript 3.0开发提供了强大的设计模式支持,使代码组织...
Flex Cairngorm框架详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行的设计模式,它基于Model-View-Controller(MVC)架构,旨在提高代码的可维护性和可扩展性。Cairngorm框架由SitePen公司开发,最初...
Flex Cairngorm框架实例详解 Flex,作为Adobe的开源富互联网应用(RIA)开发平台,以其强大的MXML和ActionScript支持,为开发者提供了构建交互性强、用户体验优良的应用程序的工具。而Cairngorm框架,则是针对Flex...