Pure MVC使用的几点心得

    使用PureMVC都有一段时间了,从官网的最佳实践开始看起,也详细学习了《Flex 3权威指南》。终于大概掌握了Flex和PureMVC框架。和大家分享以下几点所得:
1、注册Mediactor的时机
Mediactor是中介者,接收视图(通常是mxml)的事件(event),然后组合数据发布notification,最后接收从model返回的,关注的notification,改变视图。一般注册mediator是在初始化视图的时候,这是最简单的一种情形。比较复杂的是mxml里面包含mxml组件的情形。例如主页Main.mxml包含一个通用的组件DailyAccounting.mxml。Flex有延迟加载的机制,当初始化Main.mxml的时候,并不马上加载DailyAccounting.mxml组件,那什么时候注册DailyAccountingMediator呢?这种情况下,在DailyAccounting.mxml的init()方法里会发布一个event到Main.mxml通知它自己已经reday拉,MainMediator会把DailyAccounting.mxml的实例作为参数,注册DailyAccountingMediator。以此类推,当多个mxml一个个嵌套的时候,都可以使用这种方法注册Mediator。

2、集中管理Notification
我觉得PureMVC最大弊端就是Notification到处飞,对象一多起来,那个视图用了哪个Notifiation早就忘了,一般的做法是用一个工具类统一管理这些Notification,加上恰当的注释。

3、让整个交互过程尽量简单,但要保持松耦合
PureMVC的一般的处理过程是mxml --> mediator --> command --> proxy --> 后台service。就是说有可能在页面点击某个button,你就要开发这整套东西。并且对象数量会增加得很快,如果没有适当的注释和文档,整个项目看起来就乱七八糟的。为了更好得控制,要尽量的重用某些对象,例如用MarcoCommand替代SimpleCommand,某个mediator里可以有多个处理的方法等等。但proxy最好不要重用,因为proxy是与后台交互的对象,后台返回的处理结果不尽相同,同一个proxy不好区分。最有效的一点是选择一定的命名方式,编写文档和注释,让整个交互过程清晰。方便日后管理和改进。

4、理解Flash event机制
理解event的冒泡机制非常非常重要,因为经常会使用

以上是我的一些体会,如有什么不恰当的地方,请各位多多提点。

你可能感兴趣的:(mvc,Flex,心得,Pure,Mediactor)