文档章节

PureMvc学习笔记

flyoahc
 flyoahc
发布于 2015/06/24 16:13
字数 515
阅读 445
收藏 0

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/

© 著作权归作者所有

共有 人打赏支持
flyoahc
粉丝 12
博文 37
码字总数 15728
作品 0
南京
程序员
私信 提问
puremvc c++ simple demo

(1)puremvc 流程简述: core: model,view,control patterns:Mediator,Proxy,Observer,Facade,Command 核心和模型的纽带:Mediator (2)使用一个简单的登陆窗口模拟puremvc的使用(vs200...

YKIT
2014/02/09
0
0
FLEX上使用puremvc的困惑(吐槽)

终于被领导逼着使用puremvc了。我很清楚它的问题所在。 1.通讯机制拙劣:模块间通讯太繁琐,无法定义强类型约束的接口,性能差……2.包装层太多3.用了太多的单例5.代码冗余大6.不好调试 还有...

崔钢
2013/05/21
0
1
ROBOTLEGS轻量级AS3框架

Robotlegs是一个用来开发Flash,Flex和AIR应用的纯AS3微架构(框架)。Robotlegs专注于将应用程序各层排布在一起并提供它们相互通讯的机制。Robotlegs试图通过提供一种解决常见开发问题的经过时...

leesama
2014/08/13
0
0
ActionScript最新3D引擎项目(转载)

3D引擎 注:对于3D引擎,渲染的效率和支持的渲染功能是很重要的,然而 在短短的文章中根本不可能做详细的介绍,特别是截图,很可能具有误导性,要了解更多应用案例以及技术演示的图片,请点击...

提广乾
2013/11/27
0
0
ActionScript快速开发框架--WeeMVC

WeeMVC 是一种微型、简洁的ActionScript快速开发框架,主要特色:超级轻便,超级简洁。 虽然在ActionScript?领域优秀的框架数不胜数,最常见的如 PureMVC 、Cairngorm 等等,都提供了接近完美...

匿名
2010/01/05
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
50分钟前
0
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
1
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
2
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
2
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部