我正在努力学习设计模式,我已经和观察者模式一起来了。我想我理解这个概念本身,但我不知道什么时候该使用它。
我试着解释一下自己。我主要处理web应用程序,所以,无状态应用程序。通常,客户端从浏览器发出请愿书(例如,更新记录)。然后操作完成。
让我们假设每次更新记录时,我都会通知一些人。在我看来,这是观察者模式的完美场景,但当我想到它时,它的结尾会是这样的:
但是..。这样做,我必须迭代所有的人,我想通知两次!
而且因为它是一个无状态的应用程序,所以每次我都要得到所有需要通知的人!
我不知道观察者模式对于其他类型的应用程序是否更有用,但是我只能以静态的形式来考虑这个模式,我的意思是,使观察者静态。
我知道我失去了一些东西,这是一个普遍且被接受的模式,每个人都认为它是解决这个具体问题的有效方法。我不明白什么?
发布于 2016-02-25 15:32:56
首先,让我们把术语弄清楚。
每个观察者(个人)都需要在服务器上注册自己。它发送一个请求,本质上说,“我对foo可观测数据感兴趣”,在本例中,就是“我对更新事件感兴趣”。服务器维护对哪些事件感兴趣的人的映射。
每次服务器进行更新时,它都会迭代更新观察者的映射,并向每个观察者发送一个通知。
它的优点是服务器和它的可观测数据在编译时不知道观察者是谁。观察者可以在运行时为他们感兴趣的任何事件注册(和注销)自己。
https://stackoverflow.com/questions/35622481
复制相似问题