首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObserverPattern -网络实现示例(Twitter)

ObserverPattern -网络实现示例(Twitter)
EN

Stack Overflow用户
提问于 2015-07-25 19:53:26
回答 1查看 592关注 0票数 0

ObserverPattern

定义对象之间的一对多依赖关系,以便当一个对象更改状态时,它的所有依赖项都会被自动通知和更新。

我理解这个定义,并从windows窗体的角度理解它。例如,我们有三种形式,当主体的状态发生变化时,我们可以同时更新三种形式(不同的观察者)。

但是,如果我们想在网站上(例如在Twitter上)实现观察者模式,它是如何工作的呢?

假设我们有一个主题比尔盖茨,20个追随者加入他(20个新观察家)。

每次新的追随者加入,这不是存储在数据库谁是谁的追随者?因此,如果比尔盖茨发推文,操作检查谁是他的追随者数据库,并更新墙的追随者比尔盖茨推特(这再次进入数据库下的追随者ID)。

那么,Twitter如何从设计模式的角度使用观察者模式(主观者-观察者)呢?我们是否仍然使用观察者模式,当新的人跟进时,我们使用registerObserver方法将观察者插入到Bill的观察者数据库中吗?然后,当Bill在推特上发布新信息时,它会从数据库中遍历所有的Bill观察者并通知他们?

我正在尝试理解Twitter示例中的实际代码用法中的这种模式。

我查看了这个关于观察者模式的视频:https://www.youtube.com/watch?v=YIX9Bkl3ZPE

我理解当我们在WinForms中直接实现时(我是在谈论使用)。但是,当数据库进入时会发生什么呢?例如,网络。它是相同的,什么时候是最好的使用它,我需要一个网站的例子。

EN

回答 1

Stack Overflow用户

发布于 2015-07-25 20:07:05

设计模式是更普遍的概念,通常它们只描述一种实现事物的方法,而不是实现本身。

关于GoF模式的另一件事(观察者就是其中之一)是它们在对象级别上工作。这意味着研究对象将所有关于观察者的信息保存在他的属性中。如果我们在图片中添加数据库,它将不再是一个真正的观察者模式。

如果我们考虑Twitter,我不认为他们使用的是观察者,至少不是纯的。它应该更复杂、更异步,并且可以在数据库级别上实现。我的猜测是,追随者保留一个订阅列表,每次用户要求更新时,系统只检查所有订阅上的新帖子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31630528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档