观察者模式和发布订阅模式的区别

「观察者模式和发布订阅模式的区别?」

1、观察者模式

观察者模式定义对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新

一个或多个观察者对目标的状态感兴趣,通过将自己依附在目标对象上以便注册所感兴趣的内容。目标状态发生改变并且观察者可能对这些改变感兴趣,会发送一个通知消息,调用每个观察者的更新方法。

读起来好像有点儿晦涩难懂。举个例子:

你心中的女神,她的一举一动,一笑一颦都牵动着你的情绪。你将自己依附在了女神的身上,当女神开心,你乐哟。当女神伤心,你焦虑怎么去哄。

女神是被观察者,你是观察者。 你观察的是女神的心情,当女神心情发生改变的时候,你也要做出相应的事。还有既然是女神,追求者肯定不止一个,女神也可能是别人的女神。所以观察女神的可能是多个。

2、发布订阅模式

消息的发布者不会将消息直接发送给订阅者,这就意味着发布者和订阅者彼此不知道对方的存在。在发布者和订阅者之间存在第三组件,称为消息代理或者调度中心或者中间件,它维持着发布者和订阅者之间的联系,过滤所有发布者传入的消息并相应地分发它们给订阅者。

举个例子:

最近潮鞋很热门,各种 AJ、各种椰子等等,但是大家都知道鞋子很难抢的。我看上了一双 AJ 黑红脚趾,有一个买手大佬有各种渠道能帮我弄到手。当某平台或者个人抢到了这双鞋会告诉买手,然后买手再通知到我。

这个例子是平台或者个人是发布者,买手是调度中心,而我是订阅者。我并不知道买手在哪里弄到的 AJ 黑红脚趾,卖家也不了解这双鞋最后被谁买走了。

你可能感兴趣的:(观察者模式和发布订阅模式的区别)