2010-05-17 15 views

Odpowiedz

11

Chodzi o oddzielenie obaw.

Obserwatorzy umożliwiają korygowanie kodu, który w rzeczywistości nie należy do modeli. Na przykład model User może mieć wywołanie zwrotne, które wysyła wiadomość e-mail potwierdzającą rejestrację po zapisie użytkownika, ale tak naprawdę nie chcesz tego kodu w modelu, ponieważ nie jest on bezpośrednio związany z celem modelu.

Obserwatorzy umożliwiają posiadanie tego czystego rozdziału, ponieważ nie masz całego tego kodu zwrotnego w swoich modelach. Obserwatorzy zależą od modelu (lub modeli), a nie odwrotnie.

0

Dla mnie to samo. Ale wolę oddzwanianie zamiast obserwatora.

Obserwator to oddzwanianie, ale w osobnym modelu.

Oddzwonienie jest w modelu. Więc widzisz, że jest callback i możesz go zhakować.

0

Myślę, że chodzi o to, aby Twoje modele były względnie szczupłe. Kiedy więc zauważysz, że twój model robi się absurdalnie długotrwały, być może nadszedł czas, aby go przekonać do korzystania z obserwatora.

Od surowego architektonicznego POW (jak zauważono w odpowiedzi Johna) jest to około separation of responsibilities, ale jeśli to prosta rzecz, wolę ją włożyć do modelu.

Technicznie praktycznie nie ma różnicy.

Powiązane problemy