ObserverPattern
定义对象之间的一对多依赖关系,以便当一个对象更改状态时,它的所有依赖项都会被自动通知和更新。
我理解这个定义,并从windows窗体的角度理解它。例如,我们有三种形式,当主体的状态发生变化时,我们可以同时更新三种形式(不同的观察者)。
但是,如果我们想在网站上(例如在Twitter上)实现观察者模式,它是如何工作的呢?
假设我们有一个主题比尔盖茨,20个追随者加入他(20个新观察家)。
每次新的追随者加入,这不是存储在数据库谁是谁的追随者?因此,如果比尔盖茨发推文,操作检查谁是他的追随者数据库,并更新墙的追随者比尔盖茨推特(这再次进入数据库下的追随者ID)。
那么,Twitter如何从设计模式的角度使用观察者模式(主观者-观察者)呢?我们是否仍然使用观察者模式,当新的人跟进时,我们使用registerObserver方法将观察者插入到Bill的观察者数据库中吗?然后,当Bill在推特上发布新信息时,它会从数据库中遍历所有的Bill观察者并通知他们?
我正在尝试理解Twitter示例中的实际代码用法中的这种模式。
我查看了这个关于观察者模式的视频:https://www.youtube.com/watch?v=YIX9Bkl3ZPE
我理解当我们在WinForms中直接实现时(我是在谈论使用)。但是,当数据库进入时会发生什么呢?例如,网络。它是相同的,什么时候是最好的使用它,我需要一个网站的例子。
发布于 2015-07-25 20:07:05
设计模式是更普遍的概念,通常它们只描述一种实现事物的方法,而不是实现本身。
关于GoF模式的另一件事(观察者就是其中之一)是它们在对象级别上工作。这意味着研究对象将所有关于观察者的信息保存在他的属性中。如果我们在图片中添加数据库,它将不再是一个真正的观察者模式。
如果我们考虑Twitter,我不认为他们使用的是观察者,至少不是纯的。它应该更复杂、更异步,并且可以在数据库级别上实现。我的猜测是,追随者保留一个订阅列表,每次用户要求更新时,系统只检查所有订阅上的新帖子。
https://stackoverflow.com/questions/31630528
复制相似问题