续上一篇的使用心得,在过去的3个月里面,自以为对PureMVC已经掌握,也有自己的一套模式(增删改查),但当有时间重构代码的时候,发现之前的设计有很多冗余和不合理的地方。其实PureMVC是很灵活的一套框架,怎么开发出健壮和方便修改,扩展的应用,要花些心思。以下是我之前存在的一些问题:

    1.注册mediator/command/proxy的时机不合适和没有及时注销。当初所有command/proxy的注册我都是放在应用初始化的时候做,就是无论用户是否真的用到这些功能,都已经注册(占用客户端的内存)了。另外比较严重的一点是,根本没有注销!那样会怎样,客户端的内存会一直占用,直到退出浏览器,后果可想而知。正确的做法当然是有需求才去满足需求啦。当用户点击某个button,menu,下拉菜单时,才去注册mediator/command/proxy,用完之后及时注销。当然,如果有些功能模块是经常用到的,可以常驻内存,这样会提高一点效率。

    2.数量巨大的mediator/command/proxy。还记得官网上那个经典有如蜘蛛网的图?mediator/command/proxy的数量真的可以随着你的设计而有所不同。就是说实现同样的功能,可以有不同的方案,究竟哪个才是最好?把增删改查都放在同一个command/proxy,还是各自都有一个?之前我的设计是各自独立的,导致代码数量巨大,维护起来也麻烦。后来改成适当的把某些代码集中起来。

    3.我想Flex最令人头疼的是Event到处飞的情况了,因为随着时间久了,就不记得是哪里监听这个事件了?天啊,我还没有运用Event中比较复杂的冒泡情况。究竟应该怎么管理这些淘气的Event?我能做到的是规范命名,足够的注释和文档。

    当开发到一定阶段,在回过头来看看PureMVC的最佳实践,理解一下框架的设计意图,好重要啊。最后的总结是:没有最好的设计,只有最合适的设计。各位高手,有什么意见,建议,都可以告诉我啊!