2010-05-17 17 views

Respuesta

11

Se trata de la separación de las preocupaciones.

Los observadores le permiten factorizar el código que realmente no pertenece a los modelos. Por ejemplo, un modelo User podría tener una devolución de llamada que envíe un correo electrónico de confirmación de registro después de guardar el registro del usuario, pero realmente no desea este código en el modelo porque no está directamente relacionado con el propósito del modelo.

Los observadores le permiten tener esa separación limpia porque no tiene todo ese código de devolución de llamada en sus modelos. Los observadores dependen de un modelo (o modelos), y no al revés.

0

Para mí es lo mismo. Pero prefiero la devolución de llamada en lugar de Observer.

Observer son de devolución de llamada, pero en un modelo separado.

La devolución de llamada se encuentra dentro del modelo. Entonces ves que hay devolución de llamada y puedes hackearla.

0

Creo que es mucho sobre mantener sus modelos razonablemente delgados. Entonces, cuando encuentre que su modelo es ridículamente largo, podría ser hora de refactorizarlo para usar un observador.

Desde el estricto POW arquitectónico (como se señala en la respuesta de John) se trata de separation of responsibilities, pero si es algo simple, prefiero pegarlo en el modelo de todos modos.

Técnicamente, prácticamente no hay diferencia.

Cuestiones relacionadas