观察者和回调之间的巨大差异是什么?何时何地使用哪一个?
答案 0 :(得分:11)
关于分离关注点。
观察者允许您分解出不属于模型的代码。例如,User
模型可能有一个回调函数,用于在保存用户记录后发送注册确认电子邮件,但您并不真正想要在模型中使用此代码,因为它与模型的用途并不直接相关。 / p>
观察者允许您进行干净的分离,因为您的模型中没有所有回调代码。观察者依赖于一个或多个模型,而不是相反。
答案 1 :(得分:0)
对我而言,这是一回事。但我更喜欢回调而不是观察者。
Observer是回调,但是在单独的模型中。
回调在模型中。所以你看到有回调,你可以破解它。
答案 2 :(得分:0)
我认为保持你的模型合理精益是很重要的。因此,当你发现你的模型变得非常漫长时,可能是时候重构它以使用观察者了。
从严格的建筑战俘(如约翰的答案中所述),它约为separation of responsibilities,但如果这是一件简单的事情,我宁愿将其粘贴在模型中。
从技术上讲,几乎没有区别。