从年初接触PureMVC框架,后在公司的项目中一直使用已经半年多了,在PureMVC的使用中发现一些问题,也总结了一些经验,自认为应该把这些东西记录下来,也包括在网上看到一些粗浅的技术文章,不说写得如何,至少能让初学者少走些弯路。
PureMVC的作者Cliff创造这个框架的目的,就是创建一个纯粹的MVC框架,这从名字上就能看得出来。我感觉很多人看了PureMVC优雅艺术的UML图,初步了解PureMVC以后,认为其中包括了Façade模式,Observer模式,就被吓住了。事实上这些模式在框架内已经实现,当然了解这些模式也有好处,事实上我们在使用PureMVC的时候这些东西压根就是个名词。
为什么我要废话那么多,很多人在使用PureMVC的时候,连MVC的概念都不清楚。MVC的概念百度百科上有,当然如果你觉得百度百科版权不明确,也可以去维基百科英文版找一找。这篇文章的目标读者,也是对MVC熟悉的人。
介绍MVC概念最常用的就是表格程序,View和Model通过Controller连接,View中显示的数据根据Model的改变而改变。前一阵我看到论坛上一位同学写PureMVC的使用心得,说Mediator互相sendNotification,省去了Controller,还觉得这样解耦了。
还是用最基本的例子,屏幕上多个View之间应该是相互独立的,即删除一个View对其它View是没有影响的,比如有两个表格,一个表格显示公司员工薪资,另一个表格显示员工考勤。这两个表格应该是相互独立的,即删掉员工薪资表格,员工考勤表格应该没有任何变化而且运行稳定。如果多个View之间相互操作,删掉其中一个必然导致另一个的不正常,这还谈什么解耦?
MVC框架还有一个特点就是,View和Model之间相互匿名。即表格不知道数据存储方式,一个Model可能给多个View服务,而一个View也可能对应多个Model。View和Model通过Controller连接,三者缺一不可。View不应该知道Model的存在,Model也不知道View的存在。虽然PureMVC也提供retrieveProxy这样的方法使View层直接获得Model数据,但是这样做不但破坏MVC结构,而且增加耦合,完全失去了MVC意义。
杜增强的《PureMVC的十个小提示》里提到,尽量多的使用Command,尽量多使用Notification,我觉得这是对初学者很好的建议。
还有就是,MVC这种框架对于表格显示后台数据的确非常明确,而PureMVC AS客户端完全在前台,而且很多程序没有表格,这让很多人对PureMVC的使用非常模糊。我也觉得,如果没有对MVC概念深刻的理解,在AS里的确会让人迷惑。
写完睡觉,下一篇准备写一写PureMVC里VO的使用和PureMVC里异步加载处理的一些经验。
回复Comments
作者:
{commentrecontent}