2010-05-17 83 views

回答

11

這是關於問題的分離。

觀察者允許你將不屬於模型的代碼分解出來。例如,一個User模型可能會有一個回調,在用戶記錄保存後發送註冊確認電子郵件,但您並不真的需要在模型中使用此代碼,因爲它與模型的目的沒有直接關係。

觀察員允許您擁有乾淨的分隔,因爲您的模型中沒有所有回調代碼。觀察者依賴模型(或多個模型),而不是相反。

0

對我來說,這是一回事。但我更喜歡回調而不是Observer。

觀察者是回調,但在單獨的模型。

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

0

我很關心保持你的模型合理的精益。所以,當你發現你的模型變得非常可笑時,它可能是重構它來使用觀察者的時候了。

從嚴格的建築戰俘(正如約翰的回答中指出的),它大約是separation of responsibilities,但如果這是一件簡單的事情,我寧願將它固定在模型中。

從技術上講,幾乎沒有區別。

相關問題