- 浏览: 1460685 次
- 性别:
- 来自: 苏州
-
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
摘要
Cairngorm 作为Adobe 官方的Flex框架,一直被大家所认识和使用,我以自己用Cairngorm做企业级项目时积累的经验,对Cairngorm 做一个比较深入的探讨.
正文
Cairngorm作为一个轻量级别的Framework,的确在小型项目中对开发有一定程度帮助,但是随着重量级别的Flex开发的,尤其是Message Push,Module,RSL,DataService,等比较重量级别的特性的使用,Cairngorm并没有很好得处理和封装这些特性,Cairngorm只不过为我们提高了一个样板,一个线索,实际上的工作还需要我们来完成.
其次,Cairngorm的整体设计上存在一定的陷阱,如果没有办法很好得理解Cairngorm的设计思想,很有可能会造成性能问题和额外维护成本.
下面分几点来讨论:
(1)IServiceLocator模式
IServiceLocator的主要功能是使远程服务器对象保持单例,但没有提供添加删除功能.没有考虑到Module加载这一特性,所以的远程服务都必须注册在Application上,丧失了动态服务加载的特性.
(2)CreditCardDelegate
这是一个莫名其妙的类,我无法理解他的存在能带来什么,从表面看上去可能和后端的RemoteObject的类型保持一直, 把service从弱类型转换为强类型,但是CreditCardDelegate本身通过构造函数Command的子类来实例化,从敏捷角度来说这些操作太多余.
(3)Command模式的滥用
Command模式 最推荐在远程服务的业务逻辑的情况下才使用,一般的UI事件使用UI原来的事件机制可能会更加良好的兼容性.
Cairngorm对事件链和事件流的支持不是很好,只有一个SequenceCommand
使用的时候还需要自己去调用
Called explicitly by the developer within a concrete SequenceCommand implementation public function executeNextCommand() : void; |
(4)虚伪的FrontController
FrontController根本没有做任何事实上可控制有关系的事情,充其量可以作为一个任务分派器或者任务配置表.将CairngormEvent和Command做映射.
有兴趣可以对比看一下flex sdk中Controller类的职责很角色.
(5)CairngormEvent
有些开发者喜欢只使用CairngormEvent,来传递数据,由于CairngormEvent只有一个data:* 造成不同数据结构的事件都叫CairngormEvent, 这样的做法会降低项目的可维护性, 参考CairngormStoreWeb2_1,就为每一种类型的事件建立了新的子类,和数据结构和构造器. 我十分推荐这种做法
(6)IModelLocator
IModelLocator这个特性是一个很危险的特性,由于IModelLocator是单例全局访问权限, 如果将View和临时数据放在里面,很容易造成内存泄漏等问题.IModelLocator存放大量无关数据也会造成无法被垃圾回收.
IModelLocator还不利于自定义FLex组件的独立性,如果在自定义组件里使用IModelLocator的数据,就会造成自定义组件依赖Cairngorm.
我建议尽量避免使用IModelLocator,IModelLocator中只放业务相关的数据,不放任何图形对象的实例.
(7)ViewHelper 和 ViewLocator
刚才提到了IModelLocator中定义View会造成问题.CairngormEvent又提供了ViewHelper 这样一个机制来提供全局范围访问view.
虽然提供了2个监听来防止内存泄漏
view.addEventListener( Event.ADDED, registerView );
view.addEventListener( Event.REMOVED, unregisterView );
但是我还是不推荐使用.因为这会增加代码复杂度和耦合.
(8)其他
还有一些比如多国语言和样式等,基本没有什么太大的问题,这里就不提了.
总结
IServiceLocator 和FrontController的功能有限.
Command和CairngormEvent 往往是开发者理解不足造成的问题
IModelLocator 和ViewHelper 会让程序像汇编里的GOTO那样东跳西跳.
总得来说,Cairngorm的技术和设计思路并没有太大的问题,但是由于种种问题,导致Cairngorm还无法胜任大型项目的开发,因此我借鉴了Cairngorm,ModuleGlue和其他一些框架,自己开发了新的Framework,-------- Loof-framework.
参考资料
Adobe Cairngorm:http://labs.adobe.com/wiki/index.php/Cairngorm
评论
发表评论
-
Apache FlexJS 0.0.1 和 Apache Flex FalconJX 0.0.1发布
2015-11-01 19:44 566原文地址:http://note.sdo.com/u/634 ... -
Flash Catalyst 常用键盘快捷键
2011-03-28 15:38 1078转自:http://www.riameeting.com/ ... -
8款很实用的Actionscript写的位图(BitMap)操作类
2011-03-24 12:09 1959AS3 Scale9 Bitmap ... -
VC++ 项目中使用 FLEX
2011-03-24 09:13 19611, http://hi.baidu.com/qinpc/ ... -
flex应用开发/flash应用开发 代做flash作业/flex作业
2011-01-09 20:37 347专业承接flex应用开发/flash应用开发 ... -
脑袋里的秘密,输入姓名就可以知道你在想什么! flex版
2010-12-29 11:34 2560输入名字就可以知道她/他在想什么的工具~~ -
一个flex聊天机器人
2010-12-18 10:42 1668无聊之下所作,供大伙娱乐,随边聊聊。。。 -
Flex:基于Flex-config.xml的命令行编译
2009-07-01 09:33 1913关键字: Flex Flex2 编译 mxmlc ... -
抽出flash与java 用AMF交互代码
2009-06-30 15:09 3673最近做的一个java 与flash通讯的项目,由于项目框 ... -
BulkLoader类和PV3D
2009-06-26 17:02 1983AS3取消了movieclip的loader类,所以加 ... -
使用 Flex Builder 3.x 分析工具 Profile
2009-06-25 11:26 3431前言 关于分析工具 (原文见Flex Builder ... -
AMF3+JAVA的调用范例
2009-06-24 17:44 2574[AS3]AMF3+JAVA的调用范例 amf是Ad ... -
Flex 程序性能测试
2009-06-24 16:02 1965Flex 程序性能测试 作者:叶晖俊 yehui ... -
Flex RemoteObject类参考
2009-06-19 11:39 1258<mx:RemoteObject>标记 ... -
flex画的菱形
2009-05-11 16:19 3478package com { impo ... -
理解 Flex itemRenderer - 第 4 部分: 状态和过渡
2009-05-08 09:23 1730itemRenderer 最擅长与应用 ... -
理解 Flex itemRenderer - 第 5 部分: 效率
2009-05-08 09:21 1784如果您要显示大量 itemRenderer-无论在 Dat ... -
VO to XML converter
2009-05-04 09:00 1167private function convertToXM ... -
Flex全屏
2008-09-26 11:11 1806private function goFullScreen( ... -
ExternalInterface在Firefox下出错的bug
2008-09-16 09:28 3197使用Document Class为避免命名空间冲突,通常会取消 ...
相关推荐
Adobe Cairngorm是一款开源的Model-View-Controller(MVC)框架,专门针对Adobe Flex和ActionScript 3.0开发。这个框架为构建可维护和可扩展的富互联网应用程序(RIA)提供了强大的支持。本文将深入探讨Cairngorm的...
Flex框架是Adobe开发的一种用于构建富互联网应用(RIA)的技术,它基于ActionScript和MXML。Cairngorm是Flex框架中的一个轻量级MVC(Model-View-Controller)设计模式实现,由Adobe社区成员Stephan J. Schmidt在2005...
Flex框架是Adobe公司推出的一种基于ActionScript和Flash Player运行时的开发框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。Cairngorm是Flex社区中流行的一种轻量级MVC(Model-View-...
Flex Cairngorm框架生成器是一款专门针对Adobe Flex开发的工具,旨在简化Cairngorm框架的应用构建过程。Cairngorm是ActionScript和Flex社区中广泛使用的轻量级MVC(Model-View-Controller)框架,它帮助开发者组织和...
Cairngorm是一个轻量级的MVC框架,专门用于Adobe Flex应用程序的开发。这个框架的设计目的是为了提高Flex项目的可维护性和可扩展性,通过分离业务逻辑、视图和控制层,使得代码更加模块化。在Cairngorm中,模型...
这个框架是Adobe Flex开发者社区中的一个流行选择,它旨在提高代码组织、可维护性和可扩展性。让我们深入探讨Cairngorm框架的核心组件及其在实际开发中的应用。 1. **模型(Model)**:模型层是应用程序的数据存储...
文件“Cairngorm框架在Flex开发中的应用研究.nh”很可能是关于Cairngorm在实际项目中的案例分析或技术指南,详细讨论了如何在Flex开发中有效地利用Cairngorm框架,包括最佳实践、常见问题以及解决方案。通过阅读这份...
### Flex框架 Cairngorm+Spring集成详解 #### Flex框架概览 Flex是一种用于构建和部署丰富互联网应用程序(RIA)的强大工具包,它结合了强大的编程语言(如ActionScript)、丰富的图形渲染引擎以及高效的编译器,使...
Flex Cairngorm框架是Adobe Flex开发中的一个轻量级MVC(Model-View-Controller)框架,它旨在帮助开发者组织和管理复杂的Flex应用程序。Cairngorm由Adobe贡献给开源社区,是ActionScript 3.0的一个流行架构选择,...
Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行的设计模式,它基于Model-View-Controller(MVC)架构,旨在提高代码的可维护性和可扩展性。Cairngorm框架由SitePen公司开发,最初是为了满足大型企业级Flex...
总结来说,Cairngorm MVC框架为Flex开发者提供了一套结构化和模块化的开发工具,通过事件驱动和命令模式实现了视图、模型和控制器之间的解耦。"CairngormMVCDemo"项目是学习和实践这一框架的宝贵资源,可以帮助...
Flex Cairngorm框架实例详解 Flex,作为Adobe的开源富互联网应用(RIA)开发平台,以其强大的MXML和ActionScript支持,为开发者提供了构建交互性强、用户体验优良的应用程序的工具。而Cairngorm框架,则是针对Flex...
Cairngorm框架是Adobe官方推荐的用于Flex应用程序开发的MVC(Model-View-Controller)框架,旨在解决大型复杂项目中的开发效率和可维护性问题。Flex虽然提供了丰富的功能和熟悉的开发流程,但在处理复杂应用程序时,...
Cairngorm是一种专门为Adobe Flex设计的模型-视图-控制器(Model-View-Controller, MVC)架构模式框架。它通过清晰地分离应用逻辑,使得开发更加模块化、可维护性强,并且能够很好地与后端服务进行交互。 ##### 1.1 ...
《Cairngorm中文版》官方的FLEX框架是一份重要的资源,对于深入理解Adobe Flex应用开发中的架构设计有着极大的帮助。Flex是一个基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。而Cairngorm是...
Flex是Adobe公司开发的一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA)。Cairngorm是Flex中一个非常著名的轻量级MVC(Model-View-Controller)设计模式框架,它为开发者提供了一种组织和管理...
Flex的Cairngorm框架是Adobe Flex开发中的一个轻量级MVC(Model-View-Controller)框架,它为创建可扩展、可维护的富互联网应用程序(RIA)提供了结构和指导。Cairngorm框架主要由Martin Fowler在2005年提出,灵感...
Flex Cairngorm框架是Adobe Flex开发中的一个轻量级、基于MVC(Model-View-Controller)设计模式的架构框架,旨在帮助开发者更好地组织和管理复杂的Flex应用。这个框架最初由Adobe公司内部开发,后来成为了开源项目...