刚接触flex 框架对你没什么好处,一旦对整个flex熟悉了,框架对你的作用就大了,国外有人对各种ria框架做过测评,最后评出pureMVC与caringorm是最优的,而pureMVC测评得分最高,pureMVC与Cairngrom比较,类少很多了、结构也要清晰一些,我看融入pureMVC会比较的容易点,pureMVC意为纯粹的MVC,pureMVC并不是flex或者flash框架,它与语言无关,它包括两个版本,标准版、MultiCore(多核)版,了解pureMVC,我觉得首先从pureMVC组成、各个组件职能、执行顺序去去了解它:
pureMVC是纯MVC框架 ,包含几个部分
Model(模型):ValueObject、Proxy
View(视图):Component、Mediator
Controller(控制器):Command
当然还有Facade部分他是总指挥,Mediator、Command 、Proxy 、 Facade都继承了Inotifier功能,因此都具有发送Notifacation的功能
ValueObject:简称VO,值对象,也叫实体对象,不说应该明白
Proxy:直译代理,而在程序中一般都是直接操作数据的,比如访问httpService、webService、RemoteObject、Socket操作,而Proxy方法一般由Command来调用,当然也可以在Mediator中直接调用,两者都是通过facade.retrieveProxy()获取Proxy示例来调用的。
Component:视图组件
发送事件、接收客户端输入数据
Mediator:调解视图组件与其他部分交互的,Component操作数据,Mediator就相应发送操作数据的Notification
listNotificationInterests
handleNotification
Command:
execute 执行Command
addSubCommand()
Facade:
startup 启动方法
单例模式
registerProxy
registerCommand
registerMediator
1.View发事件出来 ----> 2.Mediator监听了事件,触发发送通知 ------> 3.Command接收通知调用Proxy-----> 4.Proxy发出通知发出数据 ----------> 5.Mediator接收通知把数据显示到View
另外MultiCore版基本上和标准版是差多不的,facade是pureMVC的核心,标准版的facade只会存在一个,多核版本facade会有多个,它的实例会在instanceMap中保存,所以用多核时需要这样去获取实例facade:
public static function getInstance( key:String ):IFacade {
if (instanceMap[ key ] == null ) instanceMap[ key ] = new Facade( key );
return instanceMap[ key ];
}
反思:这样一个小框架在实际项目中的应用真的会那么轻松便捷吗?这个还需要去尝试尝试
写了一个很简单登陆的pureMVC例子