观察者模式(Observer Pattern)在项目中经常会被使用到,也被叫做发布订阅模式,也就是说 观察者 = 发布者 + 订阅者
GoF的《设计模式》中对观察者是这样描述的:
Define a one-to-many dependency between objects so that when one object changes state, all its depende...
分类:
其他好文 时间:
2014-09-05 01:00:30
阅读次数:
373
* 简单来说,观察者模式=发布者+订阅者。下面是一个有关猎头的典型的例子。在下面这张图当中有两个角色:
* 猎头和寻找工作的人。找工作的人向猎头订阅,告知自己希望得到一份工作,当有新的工作机会的时候,
* 猎头就会把这个信息通知给曾经向他订阅过的人。
猎头接口:
package com.pattern.observer;
/**
* @author Qixuan.Chen
* 创...
分类:
编程语言 时间:
2014-09-02 15:58:54
阅读次数:
230
形象例子: 想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦。观察者模式: 观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对.....
分类:
其他好文 时间:
2014-09-01 21:06:13
阅读次数:
300
订阅者:只能修改自己的个人资料,例如昵称、联系信息、密码等等。投稿者:具有订阅者的所有权限。可以发表文章,发表的文章需要经过管理员审核后才能在博客上显示出来,但可以预览效果。对待审中的文章可以编辑,但对已通过审核的文章不能编辑,可以查看所有站内评论,但不能对评论进行编辑。作者:具有投稿者的所有权限。...
分类:
其他好文 时间:
2014-08-15 09:25:37
阅读次数:
237
Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),,之后成为Apache项目的一部分。Kafka系统快速、可扩展并且可持久化。它的分区特性,可复制和可容错都是其不错的特性。
Apache Kafka与传统消息系统相比,有以下不同:
它被设计为一个分布式系统,易于向外扩展;
它同时为发布和订阅提供高吞吐量;
它支持多订阅者,当失败时能自动平衡消费者;
...
分类:
其他好文 时间:
2014-08-11 15:08:32
阅读次数:
389
KbmMW 中支持基于UDP的消息广播,也支持TCP/IP hub/spoke 方式,还有基于UDP或者TCP/IP 的点对点的消息传输。1.基于UDP的消息广播 根据UDP 的工作原理,在同一个网段里面,可以发布广播包。这样发布者只需要发布一次,消息就可以被同一网段上的所有订阅者收到。这样大大的....
分类:
其他好文 时间:
2014-08-03 23:11:26
阅读次数:
395
观察者模式(Observer):定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
Observer模式的典型应用
- 侦听事件驱动程序设计中的外部事件
- 侦听/监视某个对象的状态变化
- 发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息的出现等等)被触发时,通知邮件列表中的订...
分类:
其他好文 时间:
2014-07-27 11:53:13
阅读次数:
119
1、发布/订阅模型概览 发布/订阅(publish-and-subscribe)模型通常被简写为pub/sub模型。在这个模型中,消息生产者成为发布者(publisher),而消息消费者则称为订阅者(subscribe)。在点对点模型中,是将消息发送到一个队列中,而发布/订阅模型则是将消息发布给一个...
分类:
其他好文 时间:
2014-07-22 22:50:57
阅读次数:
4009
消息过滤的背景 从一个特定的队列或主题接收消息时,您可能会希望由更多的选择。如果没有消息过滤技术,主题订阅者就会接收发布到该主题的每一条消息,而队列接收者也会继续接收下一条消息,并不考虑这些消息的内容或类型。 就主题订阅者来说,它可能要强制处理很多不必要和不想要的消息,这通常导致:编写定制Jav.....
分类:
其他好文 时间:
2014-07-20 22:00:07
阅读次数:
419
一、发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher)。 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户端为订阅者(subscriber)。为了解耦发布者(publi.....
分类:
编程语言 时间:
2014-07-16 21:18:16
阅读次数:
285