文档章节

关于PureMVC的notification机制

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 433
阅读 17
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
1
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
6
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部