Flex框架选择指南

开发 后端
Flex框架多种多样,每种都有各自的的特点和优势,这里向大家简单介绍两种,希望通过本文的介绍你对Flex框架的概念有一定的认识。

本文和大家重点讨论一下Flex框架中PureMVC和Swiz的优缺点,从而学习如何选择一个Flex框架,尽管PureMVC用在Flex上,但是它并不是只为Flex设计的,而Swiz是一个控制反转(IoC,InversionofControl)框架,它提供一些机制来简化事件处理和异步远程调用。

如何选择一个Flex框架

PureMVC

尽管PureMVC用在Flex上,但是它并不是只为Flex设计的。PureMVC的创建者想让它是一个语言无关的框架。如果你访问它的网站,会发现大量的不同语言的实现版本。

PureMVC以MVC模式为中心,其目标是把项目分离成模型层,视图层和控制层。这三个层表现为三个单例——Model,View和Controller,还有第四个单例Facade用来对前三个单例进行集中管理,是Facade模式的实现。

与Cairngorm很像,使用PureMVC创建一个项目需要把项目分成多个包,然后继承框架中的类来构造自己的类。最后还要为项目额外创建一个Facade类来作为程序的入口。

优点

与Cairngorm一样,PureMVC是一个结构良好的框架,有活跃的社区和开发者支持。它很适合团队开发,其清晰的结构能告诉开发者如何创建和组织代码。

缺点

因为它依赖于单例,所以有着和Cairngorm一样的缺点。它不是一个特定的Flex框架,所以没有充分利用到MXML的特性。

跟Cairngorm类似,PureMVC有自己的事件处理方式,但是跟标准的Flex事件模型一起工作会增加开发难度。

PureMVC是一个比较复杂的Flex框架,有相当陡的学习曲线。除非你的团队很熟悉它,否则培训会占用很多时间。

还有,PureMVC也需要创建很多类,既增加了产品的开发时间,又增大了项目的尺寸。

资源
Documentationandlicensing
Exampleproject
PodcastinterviewwithPureMVCframeworkcreatorCliffHall

Swiz

Swiz是一个控制反转(IoC,InversionofControl)Flex框架,它提供一些机制来简化事件处理和异步远程调用。Swiz的真正意图是以一种简单高效的方式提供一个MVC范式。与Cairngorm和PureMVC不同,它借鉴了Java的一些模式,摒弃了预定义的文件结构。

使用Swiz创建一个项目需要告诉Swiz所用到的组件。以这个为核心,Swiz是一个集中管理的工厂模式。组件被名为BeanLoader的静态类加载到工厂当中,由工厂来处理组建的实例化。
Swiz还提供依赖管理,它使用了一个名为Autowire的自定义标签,Autowire标签定义依赖然后交给Swiz处理。

优点

Swiz简单易用,没有预定义的文件结构。类似于Mate,Swiz通过Autowire这个依赖注入系统,提升了松耦合性。也类似于Mate,它使用Flex内建的事件模型,并且使用单例来发送一个关键的事件。

缺点

跟Mate一样,Swiz没有为项目的结构做过多的定义,这些留给了开发者,因此,需要加强团队协作来保证代码的兼容性。
其次,它使用了自定义标签,项目的建立会额外多出一些步骤,例如设置额外的编译选项。这些过程并不复杂,但是至少这些过程在其他框架中不需要。文档强调的是Flex2的开发者,所以可能不适合比Flex2更新的版本。

资源

Documentationandexamples
PodcastinterviewwithSwizframeworkcreatorChrisScott

做出选择

虽然描述的并不详尽,但是这些信息加上资源足以让人理解提到的每个框架的方法论,优点,还有缺点。看了这些,你将如何作出取舍呢?
也许第一个问题应该问:我是否需要一个框架?Flex和MXML为快速应用开发提供了健全的系统和方法。我一直以来不太使用框架的原因是,相对于使用Flex框架而言,使用额外的框架会让我为了适应这些框架而去做更多的事情。我认为,框架的作用是简化工作任务和提高生产率,而不是为了证明我能用或者用了就说明我是一个优秀的开发者。

在一个电话面试中,我解释了自己为什么选择不使用框架,面试者回应:”我们是一个大的团队,所以你明白为什么我们需要一些框架了”。一番思索之后,我确实明白了它的意思。
使用框架的一个好处就是它让代码的编写标准化了。一个程序员A和一个程序员B使用同一个框架负责同一个项目的两个不同部分,那么可以认为他们写的程序是兼容的。也许这时候应该考虑另一个问题:有多少结构允许被强加?

这里介绍的这些框架或多会少都包含了一些预定义的结构。与独自开发相比,团队开发需要更多这样的结构。这些结构可以增加项目的开发时间和文件尺寸,但是也会提升团队的开发环境和代码的一致性。相比这下,如果你是项目唯一的开发者,就不需要把事情搞那么复杂,或许你需要一个没有这么多预定义结构的框架。
所以,选择一个正确的框架或者压根不用框架是由开发环境和项目决定的。我能给出的最好的建议是了解你的项目。通过我的调查和这篇文章,我认为自己对框架的看法会更深刻,它们确实可以满足一些需求。

翻译自:http://www.adobe.com/devnet/flex/articles/flex_framework_02.html

【编辑推荐】

  1. Flex框架Riawave的定制应用
  2. 经验总结 如何选择一个Flex框架
  3. Flex框架中Cairngorm和Mate的优点大比拼
  4. FlexBuilder3.0与Eclipse3.4的完美结合
  5. 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件 
责任编辑:佚名 来源: cnblogs.com
相关推荐

2010-07-29 17:15:55

Flex

2010-08-05 14:08:26

Flex框架

2010-08-11 13:17:07

Flex框架

2010-08-05 14:03:32

Flex框架

2024-03-05 07:55:41

框架GINGo

2010-08-09 12:42:16

Flex module

2010-07-28 09:18:03

Flex2.0

2010-08-12 15:20:49

Flex Builde

2010-07-29 17:11:03

Flex

2010-08-04 14:07:59

Flex事件机制

2010-07-29 09:31:28

Flex编程模型

2010-08-04 15:37:31

Flex图表

2010-07-30 10:13:38

Flex控件

2010-08-10 14:53:32

FlexRiawave

2010-08-05 13:50:54

Flex框架

2009-06-19 16:25:34

Flex与Spring

2010-08-04 14:28:01

Flex组件

2010-08-13 14:29:45

Flex框架

2010-07-28 10:38:29

Flex开源框架

2010-08-09 10:21:56

XMLFlex
点赞
收藏

51CTO技术栈公众号