标签:
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。这个地方个人觉得应该区分开来。容易混淆。准备在其源码上重新优化下,后期放出修改后的代码。
参考文章:
http://blog.csdn.net/sutaizi/article/details/6588004
http://www.ibm.com/developerworks/cn/java/j-lo-puremvc/
标签:
原文地址:http://my.oschina.net/oahcfly/blog/470289