2010-05-17 36 views

回答

11

这是关于问题的分离。

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

观察员允许您拥有干净的分隔,因为您的模型中没有所有回调代码。观察者依赖模型(或多个模型),而不是相反。

0

对我来说,这是一回事。但我更喜欢回调而不是Observer。

观察者是回调,但在单独的模型。

回调在模型中。所以你看到有回调,你可以破解它。

0

我很关心保持你的模型合理的精益。所以,当你发现你的模型变得非常可笑时,它可能是重构它来使用观察者的时候了。

从严格的建筑战俘(正如约翰的回答中指出的),它大约是separation of responsibilities,但如果这是一件简单的事情,我宁愿将它固定在模型中。

从技术上讲,几乎没有区别。

相关问题