观察者模式谈论出版商和订阅者。这不是真正贴近AWS SNS的吗?向所有订户广播通知,可能是SQS队列,电子邮件地址等。 有什么值得注意的差异?
答案 0 :(得分:3)
观察者模式通常是understood,以包括维护从属观察者列表的主题。如果您认为SNS主题本身是主题,那么它是适合该模式的。但是,在这种理解中,SNS主题不知道它自己的状态,并且没有代表自己通知观察者 - 它是其他人的代理。
在基于事件的系统环境中,SNS可能更好地被理解为multiplexer。
答案 1 :(得分:2)
我一直认为SNS是观察者模式的分布式实现。而继承人就是为什么;想象一下,你必须将通知分发给工作流的不同演员 - 很多人都有兴趣知道你的应用程序中已经实现了某个状态。
如果您尝试在单个实例中实现观察者模式,您将受限于内存和CPU限制,无论您扩展多少,您都可以随时达到限制。如果您碰巧要处理数十万个通知,那么您最终会拖延很多次,有时甚至会知道应用程序处于该特定状态不再有价值。你最终必须扩展你的观察者模式实现 - 但似乎有人已经做到了。
这是观察者模式的样子,according to wikipedia:
我们现在可以试着弄清楚SNS是否适合;
如果SNS完成所有这些事情而不是bird quacking like a duck - 我的意思是,它可以是任何东西,但我知道它也是观察者模式的实现。
现在让我们看看what methods are available in SNS:
然后我问你,为什么SNS不能被视为观察者模式的扩展版本?它像鸭子一样嘎嘎叫!