- 浏览: 716992 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
http://www.cnblogs.com/zhych/archive/2009/08/20/1550520.html
翻译自:http://www.adobe.com/devnet/flex/articles/flex_framework_02.html
Cairngorm
Cairngorm是一个广为人知的老牌Flex框架。它是一个微型架构——由一些设计模式组成用来降低团队协作的困难。
Cairngorm从Java的世界带来了很多开发理念,并且把重点放在三个关键区域:处理用户动作,封装服务端的交互和业务逻辑,管理客户端的状态和界面呈现。
使用Cairngorm来构建一个项目,需要将应用代码分离到不同的包并且继承Cairngorm的类。以下是Cairngorm项目中一些主要的部分和类。
- ModelLocator是一个储存数据的单例,数据表示程序的状态。单例类的性质保证了程序中的所有组件取得的是相同的数据。
- ServiceLocator是另一个单例,它集中管理所有服务如HTTPServices。同样,由于是单例,程序中的所有组件取得的是相同的服务。
- 业务逻辑被封装在command类中。command实现了命令模式,它们表示相应用户事件的逻辑。
- 事件被类FrontController处理,FrontController会把事件映射到相应的Command。
- Delegate类作为代理来对远端服务进行请求和响应。
优点
Cairngorm在Flex社区广为人知,作为Adobe开源项目的一员,拥有活跃的社区和开发者的支持。
其次,该框架吸取了Java开发中许多宝贵的经验,并成功得用于大型项目的开发中。
并且,Cairngorm适用于团队开发,因为它提供了结构化的开发方法来创建应用,利于分布式的开发。
缺点
需要写大量的类应该是Cairngorm最多的负面评论了。在Cairngorm中,每一个event对应一个command;因此,需要对程序触发的每一个事件来写一个command类。而且,还要为command写一些其他的类,例如delegates。即使是一个中型的应用也会导致大量的类产生。
其次,Cairngorm实现了自己的一套事件处理的方法。这增加了Flex内置事件模型的复杂度,而且它还有限制。由于每个事件都有自己的的command,事件的响应者被限制成1个。加之Cairngorm的事件不具冒泡特性,如果要发送数据到容器的其它层次则需要自己来实现。
第三个常见的批评是Cairngorm依赖全局的单例,这让模块和单元测试变得困难。尽管可以打破单例中的模型简化测试,但是会增加额外的过程。
资源
- Cairngorm developer documentation
- Developing Flex RIAs with Cairngorm microarchitecture – Part 1: Introducing Cairngorm (Steven Webster and Leon Tanner, August 2008)
- Example Cairngorm project
Mate
Mate是一个基于标签的,事件驱动的框架。基于标签意味着它可以完全实现在MXML中。该框架的目的是让事件响应者的声明变得简便。
在项目中使用Mate只需要处理两个方面:使用1个或者多个事件,有一个成为”event map“的MXML文件——被包含在主程序中的一个MXML文件。它定义了需要监听的事件以及如何被处理。必须有1个event map,而且允许有多个。
Mate也实现了依赖注入(Dependency injection)的理念——有时被称为好莱坞原则,或 “don’t call us, we’ll call you”。对象的创建时这样一种方式:数据被创建并且注入到对象中。也就是说,对象不会喊着要数据(”don’t call us”),而是数据被传送给对象(”we’ll call you”)。
优点
Mate使用依赖注入提升了松耦合性。因为组件不依赖全局的单例,能更自由地作为对立的部分。Mate不会阻止你使用Flex内建的事件机制,也不会像Cairngorm一样为每个事件都使用单独的响应。Mate的MXML标签文件简单易用,而且文档优秀,在官网上有大量的代码实例。
缺点
Mate使用MXML文件构建,要是作为一个ActionScript开发者,就需要调整自己的习惯。而且Mate没有为应用程序制定结构,这份工作留给了开发者。
因此,需要加强团队协作来保证代码的兼容性。还有一个问题与Adobe LiveCycle Data Services ES有关,要知道Mate暂时还不能处理LiveCycle Data Services提供的数据管理方面的功能。
资源
- Mate documentation
- Example projects
- Podcast interview with Mate framework creator Laura Arguello
PureMVC
尽管PureMVC用在Flex上,但是它并不是只为Flex设计的。PureMVC的创建者想让它是一个语言无关的框架。如果你访问它的网站,会发现大量的不同语言的实现版本。
PureMVC以MVC模式为中心,其目标是把项目分离成模型层,视图层和控制层。这三个层表现为三个单例——Model,View和Controller,还有第四个单例Facade用来对前三个单例进行集中管理,是Facade模式的实现。
与Cairngorm很像,使用PureMVC创建一个项目需要把项目分成多个包,然后继承框架中的类来构造自己的类。最后还要为项目额外创建一个Facade类来作为程序的入口。
优点
与Cairngorm一样,PureMVC是一个结构良好的框架,有活跃的社区和开发者支持。它很适合团队开发,其清晰的结构能告诉开发者如何创建和组织代码。
缺点
因为它依赖于单例,所以有着和Cairngorm一样的缺点。它不是一个特定的Flex框架,所以没有充分利用到MXML的特性。
跟Cairngorm类似,PureMVC有自己的事件处理方式,但是跟标准的Flex事件模型一起工作会增加开发难度。
PureMVC是一个比较复杂的框架,有相当陡的学习曲线。除非你的团队很熟悉它,否则培训会占用很多时间。
还有,PureMVC也需要创建很多类,既增加了产品的开发时间,又增大了项目的尺寸。
资源
- Documentation and licensing
- Example project
- Podcast interview with PureMVC framework creator Cliff Hall
Swiz
Swiz是一个控制反转(IoC, Inversion of Control)框架,它提供一些机制来简化事件处理和异步远程调用。Swiz的真正意图是以一种简单高效的方式提供一个MVC范式。与Cairngorm和PureMVC不同,它借鉴了Java的一些模式,摒弃了预定义的文件结构。
使用Swiz创建一个项目需要告诉Swiz所用到的组件。以这个为核心,Swiz是一个集中管理的工厂模式。组件被名为BeanLoader的静态类加载到工厂当中,由工厂来处理组建的实例化。
Swiz还提供依赖管理,它使用了一个名为Autowire的自定义标签,Autowire标签定义依赖然后交给Swiz处理。
优点
Swiz简单易用,没有预定义的文件结构。类似于Mate,Swiz通过Autowire这个依赖注入系统,提升了松耦合性。也类似于Mate,它使用Flex内建的事件模型,并且使用单例来发送一个关键的事件。
缺点
跟Mate一样,Swiz没有为项目的结构做过多的定义,这些留给了开发者,因此,需要加强团队协作来保证代码的兼容性。
其次,它使用了自定义标签,项目的建立会额外多出一些步骤,例如设置额外的编译选项。这些过程并不复杂,但是至少这些过程在其他框架中不需要。文档强调的是Flex 2的开发者,所以可能不适合比Flex 2更新的版本。
资源
- Documentation and examples
- Podcast interview with Swiz framework creator Chris Scott
做出选择
虽然描述的并不详尽,但是这些信息加上资源足以让人理解提到的每个框架的方法论,优点,还有缺点。看了这些,你将如何作出取舍呢?
也许第一个问题应该问:我是否需要一个框架?Flex和MXML为快速应用开发提供了健全的系统和方法。我一直以来不太使用框架的原因是,相对于使用Flex框架而言,使用额外的框架会让我为了适应这些框架而去做更多的事情。我认为,框架的作用是简化工作任务和提高生产率,而不是为了证明我能用或者用了就说明我是一个优秀的开发者。
在一个电话面试中,我解释了自己为什么选择不使用框架,面试者回应:”我们是一个大的团队,所以你明白为什么我们需要一些框架了”。一番思索之后,我确实明白了它的意思。
使用框架的一个好处就是它让代码的编写标准化了。一个程序员A和一个程序员B使用同一个框架负责同一个项目的两个不同部分,那么可以认为他们写的程序是兼容的。也许这时候应该考虑另一个问题:有多少结构允许被强加?
这里介绍的这些框架或多会少都包含了一些预定义的结构。与独自开发相比,团队开发需要更多这样的结构。这些结构可以增加项目的开发时间和文件尺寸,但是也会提升团队的开发环境和代码的一致性。相比这下,如果你是项目唯一的开发者,就不需要把事情搞那么复杂,或许你需要一个没有这么多预定义结构的框架。
所以,选择一个正确的框架或者压根不用框架是由开发环境和项目决定的。我能给出的最好的建议是了解你的项目。通过我的调查和这篇文章,我认为自己对框架的看法会更深刻,它们确实可以满足一些需求。
发表评论
-
转深入理解Flash的沙箱 – Security Domains
2014-01-22 09:35 837一篇很经典的进阶文章,国外牛人的分享,清晰明了,图文并茂,适 ... -
flex 很有用的东东!
2010-06-17 23:50 1263网上找了好久,原来API中就有! -
flex出现的一些问题
2010-04-08 12:19 16631.kingnarestyle.swf和flexlib 的Su ... -
flex 样式工作原理【转】
2010-04-08 12:09 1323http://hi.baidu.com/ls_mcx/blog ... -
在FlexBuilder3中使用Actionscript3进行元编程
2010-03-11 19:15 1034http://flash.9ria.com/thread-46 ... -
Error: No class registered for interface mx
2010-02-01 09:36 1244http://www.gold98.net/blog/arti ... -
Flash 视频(FLV)编码,转换,录制,播放方案一网打尽
2010-01-16 18:34 2018http://www.htmlit.com.cn/post/8 ... -
FLEX中使用FLVPlayback控件.
2010-01-16 18:29 1396http://www.cnblogs.com/xxcainia ... -
flex 继承Application及xml命名空间
2009-12-30 18:43 1520<?xml version="1.0" ... -
flex Repeater effert加效果
2009-12-15 17:25 1520package cn.ishion.component { ... -
学习自定义组件---ConstomButton
2009-12-14 15:06 1829效果只是让Button动了下, 上传了flash源文件 p ... -
flex编译生成的As代码
2009-12-09 18:30 1312new flexProject ->起名叫 test ... -
flex自定义preloader
2009-12-09 17:43 1913package cn.ishion.component { ... -
flex自定义程序 preloader 加载多个资源
2009-12-09 02:05 2284package cn.ishion.component { ... -
Flex Builder编译错误An internal build error has occurred的解决方法
2009-12-05 16:44 3212原文:http://as3blog.com/resources ... -
flex uicomponent.addChild(Button) Button不显示
2009-12-04 19:23 2142设置下Button的宽度和高度就行了 var ui:U ... -
as3 xls导出excel乱码问题解决办法
2009-12-04 11:37 3391http://blog.csdn.net/Baijinwen/ ... -
FlashDevelop配置Flex4(gumbo)环境
2009-12-04 10:27 3053http://www.flexrain.cn/fl ... -
flex gooogle code as3xls导出数据到excel
2009-12-03 19:16 2358var ex:ExcelFile=new ExcelFile ... -
Flex坐标系统及转换
2009-12-02 22:10 3098http://flash.9ria.com/thread-40 ...
相关推荐
flex框架之Cairngorm框架,包括Cairngorm框架
Flex框架是一种基于Adobe Flash Player和Adobe AIR运行时的开源应用程序框架,主要应用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。在Java-FLEX的结合中,Flex提供了前端用户界面的构建能力,...
Flex+Java登录实例完整框架是将 Adobe Flex 与 Java 技术结合,构建的一个功能完善的登录系统。这个框架主要用于创建富互联网应用程序(Rich Internet Applications,RIA),提供丰富的用户体验和强大的后端数据处理...
SpringFlex框架搭建是一个将Spring框架与Adobe Flex技术结合使用的实践过程。这个框架允许开发者利用Spring的强大功能来构建后端服务,同时使用Flex作为前端展示层,提供富互联网应用程序(RIA)的用户体验。在本篇...
1. **Flex框架**:Flex框架包括Flex SDK和Flex Builder。SDK提供了构建Flex应用所需的库和工具,而Flex Builder(现在称为Flash Builder)是一个集成开发环境(IDE),为Flex开发提供了便捷的代码编辑、调试和部署...
Flex框架的核心组成部分包括: 1. **Flex Builder**:这是一个集成开发环境(IDE),基于Eclipse,提供了代码编辑、调试、性能分析等开发工具,极大提升了开发效率。 2. **ActionScript**:作为基础编程语言,...
Flex开发框架是一个基于Adobe Flex技术的开发环境,用于构建富互联网应用程序(Rich Internet Applications, RIA)。Flex提供了强大的用户界面组件库,使得开发者能够创建出交互性极强、视觉效果丰富的Web应用。在这...
ArcGIS Server FOR FLEX API开发 框架结构 Flex Builder Project设置 Widget开发部署 Sample Flex Viewer核心编程 Flex Viewer 和Widget 部署 应用案例
在Flex和Java的整合中,一个关键的中间件是Balaze框架,也称为BlazeDS。BlazeDS是Adobe官方提供的一个开源项目,专门设计用来连接Flex客户端和Java服务器。它提供了实时的数据推送、远程调用服务(RPC)以及数据代理...
FeaF,中文名是【飞帆】,是flex enterprise application frame的意思。 ______________________________________________ ...此资源包,分三个项目,feaf为底层框架,frame为基本应用框架,另一个是屏保用。
“一款轻量级的FLEX MVC开发框架”指的是该资源提供了一个针对Adobe Flex应用的轻量级模型-视图-控制器(MVC)架构的开发框架。Flex是基于ActionScript 3的开放源代码SDK,用于构建富互联网应用程序(RIA)。MVC模式...
Flex 3是Adobe Flex SDK的一个版本,它提供了强大的Flex Builder 3作为集成开发环境(IDE),专门用于Flex应用程序的开发。Flex Builder 3基于Eclipse平台,因此它可以无缝地与Eclipse或MyEclipse集成。要配置Flex ...
Flex Mate框架是一个强大的ActionScript 3.0框架,主要用于构建Adobe Flex和Flash Builder应用程序。它提供了灵活的依赖注入(DI)和控制反转(IOC)功能,使得开发人员能够更高效地组织代码,提高代码的可重用性...
Flex框架是Adobe开发的一种用于构建富互联网应用程序(RIA)的框架,主要应用于Flash平台上。它允许开发者使用ActionScript(AS)编程语言和MXML标记语言来创建交互式的、基于浏览器的应用程序。Flex框架的核心在于...
如果一切正常,那么可以在Flash对象中看到“这是一个测试值!!!”;然后在对象中的“发送消息到JavaScript”按钮上面的文本域输入“到JavaScript中去”,然后点击该按钮;如果一切正常,那么会有Ext的对话框出现...
Flex框架是Adobe公司推出的一种基于ActionScript和Flash Player运行时的开发框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。Cairngorm是Flex社区中流行的一种轻量级MVC(Model-View-...
在Flex 4框架中,组件被分为不同的包,包括`mx.accessibility`和`mx.automation.delegates`等,每个包下包含了特定功能的类和接口。以下是对部分关键组件的详细解析: 1. **`mx.accessibility`**:此包包含了用于...
数据绑定也是Flex框架的一个关键特性,它促进了MVVM(Model-View-ViewModel)和MVC(Model-View-Controller)设计模式的实施。 在实际应用中,Flex框架还与Flash Player或Adobe AIR运行时环境紧密结合,确保应用...
Pomer是一个开源的企业信息管理系统基础框架 Pomer主要采用spring和hibernate做为后台框架,通过blazeds(LCDS)RemoteObject与java后台通信,前台采用Cairngorm MVC框架, Pomer框架主要作用就是简化blazeds(LCDS)...
Flex框架是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它主要基于ActionScript编程语言和MXML标记语言。Flex框架提供了丰富的组件库、强大的数据处理能力以及高效的图形渲染机制,使得开发者能够...