Parsley Framework 简介
Parsley Framework 是
旗下的一个Actionscript/Flash/Flex/Air的一个应用程序框架。如果你对Spicefactory不熟悉或者不了解,如果你听说过曾经的FDT Actionscript编辑器的话,他们的作者公司:Powerflasher就是这个Spicefactory的作者。
这个框架实际上一直以来对于国内开发人员来说都不是很有名的,但是,由于获得Adobe咨询团队的介绍以及国内Flash平台传道者7yue 的介绍。这个应用程序框架正在国内得到越来越多的关注。
这里就简单介绍一下,这个开发程序框架到底有什么比较有“个性”的功能。
Parsley 首先是一个IoC容器。如果对IoC不了解,还是得先去学习一下由Java社区中Spring带起来的这个模式。
IoC的最大的特点是允许你对依赖关系进行注入,换个说法就是在基于面向对象的编程中,每个对象之间是有一定关系的,比如汽车与轮胎。 我们必须让汽车持有轮胎这个对象,才能让其开始运作。
而最大的问题是如何初始化这些轮胎对象,并且让汽车持有他们。一般的两种做法是
1,由汽车这个类中,自己来创建轮胎实例,并且初始化。 这个做法的缺点是把汽车和这个轮胎实例耦合在一起了。如果你明天想换个跟牛的轮胎对象,则需要修改汽车类。
2,由一个第三方类来初始化轮胎实例,并且赋值给汽车。这个时候,你甚至可以让汽车接受一个轮胎的接口,这样,第三方可以将汽车对轮胎的依赖,注入到汽车对象中去,而且,由于汽车和轮胎之间没有直接的耦合关系,你可以随意让第三方创建不同的基于同一轮胎接口的轮胎对象,随意切换不同的轮胎。
第二种方式中提到的方式,就是依赖注入方式。也是IoC的一个很大的特点。IoC框架其实有很多,像SpringActionscript这样的项目。
IoC在Parsley中,并不是他的唯一功能,而且,如果这是他的唯一功能,Parsley也就没有这么耀眼了。
Parsely的另外一个特点,就是消息的托管。
在一般的Flex应用程中,一个用户事件有时候需要被传送出去,事件,以及事件的传送,在Cairngorm2以及我们平时常用的一些框架中,需要一个EventBus来集中播发全局事件。
在Cairngorm2中,这个EventBus是一个全局的单例,所有需要播发事件的类,视图都需要跟这个单例产生耦合从而不能继续重用。
有一些框架,使用事件冒泡机制,让Flash显示对象特有机制来在全局播发对象,最后在stage上监听这个事件。这虽然避免了单例造成的耦合,但是却造成只有被加载到显示列表上的对象才能播发事件。如果一个对象暂时离开了显示列表,或者他不是一个显示对象,则无法通过冒泡法播发事件。
Parsely的事件托管机制很好的解决了这个问题:
Parsely让你通过MetaData标记需要托管事件的类,在运行过程中,你只需要像普通一个EventDispather那样播发一个事件。由于这个对象会被Parsley托管(比如在IoC容器中,或者通过视图绑定)。Parsley会监听这个事件,并且集中将此事件重新播发出去。 你可以在你希望地方配置事件监听器来相应这些事件。
由于在22日的Adobe技术大会上,RIAmeeting要讲解关于Parsley的相关内容,这里就算是一个简单的预览。等会后会提供更详细的例子和讲解。

.gif)
.gif)




.gif)
发表新评论