打印

[AS3] 学习使用PureMVC一周,感受

慕名使用PureMVC,阅读了中文的最佳实践和使用介绍。还有那个漂亮的接口图。

开始就被他设定的Proxy,Mediator,Command和Facade吸引了。这些继承和封装起来的类为MVC简化了构建的步骤,另外在使用中也自然而然的开始了理清了MVC之间的逻辑。特别是Command,给了我剥离业务逻辑很好的方法。

慢慢的,我尝试将PureMVC搬到一个中型应用上去,那是一个很简单的Flash站点框架。在迁移的过程中我发现,PureMVC对处理比较复杂,特别是需要经常读取外部配置文件的异步操作。这样的异步操作给Command增加了很多的逻辑。当Command到达百条时,问题好像变得复杂了。而且PureMVC的Facade是一个单例,就是再大的系统只能有一个定义Facade的地方,这样好像不太利于由下而上的层次结构,对模块化好像也不太有利。

个人感觉,Pure对小的窗体应用和小的RIA还是很有用的。

不知道各位有何见教。
根本没搞懂PureMVC,郁闷着呢
Command到达百条???

是不是业务逻辑和域逻辑没有分清楚?
域逻辑 是指什么?我指的是 当一个应用 有6个子模块 每个模块有4~6条的异步操作 这些异步操作 共用一个队列下载程序 每个模块中command是有先后顺序 的 这样 facade就要注册数十条这样的notifcation和command的关系了 ,而且子模块的内部逻辑 在pureMVC中是不是不能归属到模块内的?要在ApplicationFacade中统一声明么?
请高手赐教

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
“共用一个队列下载程序”,不知道这些异步操作有什么共同点。

如果每个异步操作需要不同的proxy去操作,之间没有相关性,那么“有6个子模块 每个模块有4~6条的异步操作”应该算是个“复杂”的应用了吧

如果异步操作有相关性,比如,添加、编辑、删除记录,那么就写一个RecordProxy,而它有add(),edit(),remove()等公开方法,而不是AddRecordProxy、EditRecordProxy、RemoveRecordProxy。

不知道楼主是不是这个意思

另外,从command角度讲,command用于改变Application这个层次上的逻辑,是不是不必要关心细节的异步操作?而Mediator也可以直接获取Proxy实例进行操作,然后接受Proxy的notifcation进行相应。不过这样会增加耦合性,得把握好度。。。

TOP

当Command到达百条时,问题好像变得复杂了。而且PureMVC的Facade是一个单例,就是再大的系统只能有一个定义Facade的地方,这样好像不太利于由下而上的层次结构,对模块化好像也不太有利。
===========
不单单只有SimpleCommand,还有MacroCommand,可以集合一些同类型的命令一起执行。
pureMVC也不单单只有一个Standard版本,还有一个MultiCore版本,是一个可以创建多个Facade的版本。

TOP

哦 原来还有MultiCore版本 是可以创建多个Facade的版本的啊 学艺不精了 当时还在想MultiCore是什么意思呢 呵呵 这样的话 倒是可以使Facade各自为政了。在研究研究
5楼 说的 和我是同感
我这里说的“共用一个队列”是指 多个模块使用一个下载线程 有先后 可以插队 可以预下载 诸如此类的过程
请问这样的 业务逻辑机构 应该摆在mvc的那一个部分啊

TOP

PUREMVC 非专业人士不太好学啊。比如我。很耗精力。最好能有个中型的开源项目拿来研究一下,虽然下载了个简单的,是看懂了不过真正自己做的时候还是手很疏。
快乐每一天!

TOP