休息应用程序中的观察者设计模式
observer design pattern in rest aplications
我正在尝试学习设计模式,并且我使用了观察者模式。我想我理解这个概念本身,但我不知道什么时候使用它。
我试着解释一下自己。我主要使用 Web 应用程序,因此,无状态应用程序。通常,客户端从浏览器发出请求(例如,更新一条记录)。然后操作完成。
假设我想在每次更新记录时通知一些人。在我看来,Observer patter 的完美场景,但当我想到它时,它会以这样的方式结束:
- 用户请求更新。
- 获取所有需要通知的人。
- 将所有需要通知的人都放在观察者中。
- 进行更新。 (这也将为观察者模式发出通知)。
但是...这样做,我必须重复所有我想通知的人两次!
而且因为它是一个无状态的应用程序,所以我每次都必须去找所有需要通知的人!
我不知道观察者模式是否对其他类型的应用程序更有用,但我只能以静态形式考虑这种模式,我的意思是,使观察者成为静态的。
我知道我失去了一些东西,这是一个普遍且被接受的模式,每个人都接受它作为这个具体问题的有效解决方案。我不明白什么?
首先,让我们理清术语。
- 每个想要被通知的人都是观察者。
- 每种可以触发通知的事件类型都是一个 Observable。
每个Observer(人)都需要向服务器注册自己。它发送一个请求,本质上说 "I'm interested in foo Observables," 在这种情况下是 "I'm interested in update events." 服务器维护谁对哪些事件感兴趣的映射。
每次服务器进行更新时,它都会遍历更新观察者的映射并向每个观察者发送通知。
优点是服务器及其 Observables 不知道谁是观察者。观察者可以在运行时为他们感兴趣的任何事件自由注册(和注销)自己。
我正在尝试学习设计模式,并且我使用了观察者模式。我想我理解这个概念本身,但我不知道什么时候使用它。
我试着解释一下自己。我主要使用 Web 应用程序,因此,无状态应用程序。通常,客户端从浏览器发出请求(例如,更新一条记录)。然后操作完成。
假设我想在每次更新记录时通知一些人。在我看来,Observer patter 的完美场景,但当我想到它时,它会以这样的方式结束:
- 用户请求更新。
- 获取所有需要通知的人。
- 将所有需要通知的人都放在观察者中。
- 进行更新。 (这也将为观察者模式发出通知)。
但是...这样做,我必须重复所有我想通知的人两次!
而且因为它是一个无状态的应用程序,所以我每次都必须去找所有需要通知的人!
我不知道观察者模式是否对其他类型的应用程序更有用,但我只能以静态形式考虑这种模式,我的意思是,使观察者成为静态的。
我知道我失去了一些东西,这是一个普遍且被接受的模式,每个人都接受它作为这个具体问题的有效解决方案。我不明白什么?
首先,让我们理清术语。
- 每个想要被通知的人都是观察者。
- 每种可以触发通知的事件类型都是一个 Observable。
每个Observer(人)都需要向服务器注册自己。它发送一个请求,本质上说 "I'm interested in foo Observables," 在这种情况下是 "I'm interested in update events." 服务器维护谁对哪些事件感兴趣的映射。
每次服务器进行更新时,它都会遍历更新观察者的映射并向每个观察者发送通知。
优点是服务器及其 Observables 不知道谁是观察者。观察者可以在运行时为他们感兴趣的任何事件自由注册(和注销)自己。