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

Moh*_*ain 7 ruby-on-rails

观察者和回调之间的巨大差异是什么?何时何地使用哪一个?

Joh*_*ley 11

这是关于分离关注点.

观察者允许您分解出真正不属于模型的代码.例如,User模型可能有一个回调函数,用于在保存用户记录后发送注册确认电子邮件,但您并不真正想要在模型中使用此代码,因为它与模型的用途没有直接关系.

观察者允许您进行干净的分离,因为您的模型中没有所有回调代码.观察者依赖于模型(或模型),而不是相反.