观察者和回调之间的大局差异是什么?

7
什么是观察者和回调之间的大局差异?何时何地使用它们?
3个回答

11

这是关于责任分离的问题。

观察者模式允许你分离那些不应该在模型中出现的代码。例如,一个 User 模型可能会有一个回调函数,在用户记录保存后发送注册确认电子邮件,但你并不希望将此代码直接放在模型中,因为它与模型的目的无直接关系。

观察者模式允许你实现这种干净的分离,因为你不必将所有的回调代码都放在你的模型里面。观察者依赖于一个或多个模型,而不是相反。


0

对我来说,这两个是一样的。但我更喜欢回调函数而不是观察者模式。

观察者模式本质上也是回调函数,只不过在一个独立的模型中。

回调函数则是在模型内部。所以你可以看到有回调函数并且可以进行修改。


0

我认为这很大程度上与保持模型相对简洁有关。因此,当您发现您的模型变得非常冗长时,可能是时候重构它以使用观察者了。

从严格的架构角度来看(如John的回答中所述),它涉及责任分离,但如果这只是一个简单的事情,我更喜欢将其放在模型中。

技术上几乎没有区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接