文档章节

关于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

PureMVC 是一个通用的 MVC 框架,广泛适用于多种语言多种平台,是一个成熟的、耦合性很低的优秀框架,本文将结合实例来介绍如何使用它来进行 J2SE 的开发。 MVC 是一个非常常见的设计模式,被...

鉴客
2011/01/08
2.2K
1
puremvc的网友评论

PureMVC,就如同它的名字是,它是一个纯粹的小巧的MVC框架,支持多语言。 PureMVC有一个名为Mediator的构造,顾名思义,它就是Mediator模式的实现,充当视图API和程序其余部分的API之间的中介...

红薯
2009/12/11
405
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
c++中如何使用puremvc

如何在c++中使用puremvc开发程序,能否给个详细的实例,非常感谢!

oschina_lhch
2014/12/15
118
0

没有更多内容

加载失败,请刷新页面

加载更多

node.js学习笔记之koa框架和简单爬虫练习

Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调...

前端小攻略
24分钟前
3
0
JavaScript中的继承及实现代码

JS虽然不像是JAVA那种强类型的语言,但也有着与JAVA类型的继承属性,那么JS中的继承是如何实现的呢? 一、构造函数继承 在构造函数中,同样属于两个新创建的函数,也是不相等的 function Fn...

peakedness丶
46分钟前
3
0
记一次面试最常见的10个Redis"刁难"问题

导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 Redis在...

小刀爱编程
59分钟前
17
0
TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画...

TiDB
今天
4
0
当区块链遇到零知识证明

本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的。这个定义有点抽象,下面笔者举...

腾讯云加社区
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部