PureMvc学习笔记

PureMvc学习笔记:


Mediator

->对应View层,内部绑定View对象,由 Mediator 对象来操作具体的视图组件。(它的作用还包括:添加事件监听器,发送或接收 Notification,直接改变视图组件的状态。通过这样,就可以把视图和控制它的逻辑分离开来。)

if (notification.getName().equals(CMDConstants.NOTI_LOGIN_FAILED)) {

System.out.println("view更新,登陆失败");

} else if (notification.getName().equals(CMDConstants.NOTI_LOGIN_SUCCESS)) {

System.out.println("view更新,登陆成功");

} else {

loginView.clickLoginButton(this);

}


Proxy

->负责操作数据模型,与远程服务通信存取数据

内部可封装一些处理数据或者验证数据的方法。

通过发送Notification,通知Mediator更新界面。


Command

->只在需要时才被创建。Command 可以获取 Proxy 对象并与之交互,发送 Notification,执行其他的 Command。经常用于复杂的或系统范围的操作,如应用程序的“启动”和“关闭”。应用程序的业务逻辑应该在这里实现。


在View层,用户某个操作需要更新界面,此时可通过sendNotification(CMDConstants.CMD_LOGIN);执行某个指令。

在指令中,可以获取已经注册Proxy进行相应的操作。同时也可以在指令中发送通知给View层进行更新界面。


构建过程:

新建自己的MyFacade继承自Facade。重写相关初始化方法:

initializeController

initializeModel

initializeView

自行注册对应的对象。

自行设定启动指令类,通过MyFacade发送通知来执行。

针对View新建对于的Mediator。


个人总结:

Commond和Modiator都可以接收Notification,而且发送的方法都是sendNotification。这个地方个人觉得应该区分开来。容易混淆。准备在其源码上重新优化下,后期放出修改后的代码。


参考文章:

  1. http://blog.csdn.net/sutaizi/article/details/6588004

  2. http://www.ibm.com/developerworks/cn/java/j-lo-puremvc/

你可能感兴趣的:(puremvc)