休息应用程序中的观察者设计模式

observer design pattern in rest aplications

我正在尝试学习设计模式,并且我使用了观察者模式。我想我理解这个概念本身,但我不知道什么时候使用它。

我试着解释一下自己。我主要使用 Web 应用程序,因此,无状态应用程序。通常,客户端从浏览器发出请求(例如,更新一条记录)。然后操作完成。

假设我想在每次更新记录时通知一些人。在我看来,Observer patter 的完美场景,但当我想到它时,它会以这样的方式结束:

但是...这样做,我必须重复所有我想通知的人两次

而且因为它是一个无状态的应用程序,所以我每次都必须去找所有需要通知的人!

我不知道观察者模式是否对其他类型的应用程序更有用,但我只能以静态形式考虑这种模式,我的意思是,使观察者成为静态的。

我知道我失去了一些东西,这是一个普遍且被接受的模式,每个人都接受它作为这个具体问题的有效解决方案。我不明白什么?

首先,让我们理清术语。

  • 每个想要被通知的人都是观察者
  • 每种可以触发通知的事件类型都是一个 Observable

每个Observer(人)都需要向服务器注册自己。它发送一个请求,本质上说 "I'm interested in foo Observables," 在这种情况下是 "I'm interested in update events." 服务器维护谁对哪些事件感兴趣的映射。

每次服务器进行更新时,它都会遍历更新观察者的映射并向每个观察者发送通知。

优点是服务器及其 Observables 不知道谁是观察者。观察者可以在运行时为他们感兴趣的任何事件自由注册(和注销)自己。