文档章节

关于PureMVC的notification机制

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 433
阅读 16
收藏 0

  一个notification被send出来后,是如何被对应的接受者处理,这一过程是由observer实现的。如puremvc对observer的定位:An  Observer is an object that encapsulatesinformation about an interested object with a method that should be called whena particular INotification is broadcast.


  Observer封装的是一个关联关系:即一个notification与对这个notifaction感兴趣的对象及其方法的映射。当一个notification被send时,也就是在mediator中调用sendNofification()方法时,这个方法通过多次委派最终是通过单态View所持有的oberserMap查找到这个notification对应的observer的,从而完成了对感兴趣对象的方法调用。


  在PureMVC里,对一个notifaction感兴趣的可能有两种组件:一个是command,一个是mediator.如果接收者是command,那么它是在façade初始化controller时通过registerCommand()一个个地将(notification名称:command)的键值对put到View的oberserMap中的(当然,command是被包裹成observer放进去的)。如果接收者是mediator,那么它是在façade初始化controller时通过registerMediator()将mediator与其感兴趣的notification关联起来的,这种关联和注册command一样,也是通过封装observer,然后放入oberserMap实现的。和注册comannd不同之外在于,注册mediator的过程是自动完成的,mediator只需要在其listNotificationInterests方法中返回感兴趣的notifaction名称列表,puremvc就自动把些notifaction名称和mediator自已封装成observer放入oberserMap了,不需要再像command那样手动注册了。当一个notification发出后,这个mediator的handleNotifcation()方法将被回调,因为一个mediator可能会关注多个notification,所以这个方法往往是一个switch case语句块。

本文转载自:http://blog.csdn.net/bluishglc/article/details/6607936

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
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
从MVC框架看MVC架构的设计

从MVC框架看MVC架构的设计 尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,...

bluishglc
2011/08/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
34分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
49分钟前
0
0
ffplay 播放 rtsp地址

D:\ffmpeg\ffmpeg\bin ffplay.exe 播放rtsp地址: ffplay.exe -rtsp_transport tcp "rtsp://ip:port/pag://172.16.0.11:7302:33000000001310001748:1:SUB:TCP?cnid=2&pnid=2&auth=50&streamf......

yizhichao
54分钟前
3
0
[Jekyll] permalink -- 修改文章的链接地址

在我的个人博客中访问这篇文章时,你有注意到地址栏中显示的地址吗?它应该是这样的: https://cometeme.github.io/jekyll/2018/08/Jekyll-为文章设置永久链接.html 。打开其他的文章,可以看...

cometeme
55分钟前
0
0
启动mango数据库批处理

::启动mango数据库set dbdir=c:\mongodb\dataif not exist %dbdir% md %dbdir%c:cd c:\mongodbmongod.exe --dbpath %dbdir%...

江湖令
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部