一、PureMVC的优势
1. 学习和使用优势
* PureMVC的代码规模适中。
* PureMVC的一些类可以开箱即用,不需扩展。
* PureMVC允许用实现继承和接口继承进行扩展。
* PureMVC内置发布-订阅式的通知机制。
* 支持一些经典的设计模式,易于理解。
2. 对应用开发的影响力
* 把所有代码分离成模型-视图-控制器三个层次。
* 方便把整体框架构造成为一种稳定的状态。
* 弥补快速开发所缺少的扩展性和可维护性。
* 明确各个类的角色、职责和协作。
* 使新旧框架组件可以共存。
* 强调可重用。
* 特别适合网络通信中的客户端模型。
3. 参考自PureMVC官方文档的pdf
http://puremvc.org/content/view/98/189/
二、PureMVC的内部角色
* 表面,用于缓存MVC管理器,提供全局的单实例方法。
* 模型,用于缓存带名称的代理,是无图形界面的带状态组件管理器。
* 视图,用于缓存中介,是有图形界面和交互动作的带状态组件管理器。
* 控制器,用于缓存带名称映射的命令,是无图形界面的无状态组件管理器。
* 代理,用于封装和访问本地和远程的长生命业务数据,或者进行远程调用。
* 中介,用于组装用户界面。
* 命令,使用名称指定要传递的短生命通知对象。
* 通知,底层的命令实现。
说明:
1. 大部分开发者都习惯把这些角色集中在同一个类中。
例如,耦合视图和它私有的模型有助于代码修改。
如果使用PureMVC可能会让这些代码失去私密性和关联性,
不方便调试和修改。
2. 命令和中介之间存在多对多映射关系。
3. 通知可以用命令、中介和代理发送,但一般只能用中介来接收。
三、PureMVC在Flex应用开发中的作用
1. 客户端和服务器通信:
中介通过值对象和MXML界面绑定,而代理通过值对象与服务器程序绑定,
中介和代理被注册到表面对象,表面对象通过用命令协调中介和代理。
所以,MXML界面和服务器程序被间接连通。
2. 动作监听和界面修改:
MXML的用户动作监听句柄中,通常用单实例的表面发送通知给中介。
中介在handleNotification中接收到MXML、其它中介、代理发送过来的通知后,
改变MXML绑定的值对象,从而修改界面。
3. 执行业务逻辑:
中介在接收到通知后需要根据需求选择处理方案。
* 如果通知的处理需要异步的远程处理,例如关键的业务数据处理,
一般是从全局的表面中取出相关的代理对象,然后执行远程调用。
执行远程调用后,用通知重新唤醒中介,把结果反映到用户界面上。
* 如果通知的处理可以在本地快速完成,
则直接在handleNotification中执行业务逻辑,
完成后修改MXML绑定的值对象,把结果反映到用户界面上。
4. 参考例子:
见http://www.dehats.com/drupal/?q=node/26