Patrones de diseño
Descripción
Define una dependencia uno-a-muchos
entre objetos, de modo que cuando un objeto cambia su estado, todos los demás objetos dependientes se modifican yactualizan automáticamente.
Úsese cuando:
1.
Uso
Una abstracción tiene dos aspectos y uno depende del otro. Encapsular estos aspectos en objetos separados permite modificarlos y reutilizarlosde forma independiente. Cuando un cambio en un objeto requiere cambiar otros y no sabemos cuantos objetos necesitan cambiarse.
Cuando un objeto debería ser capaz de notificar a otros sin hacersuposiciones sobre quienes son dichos objetos (no queremos que estos objetos estén fuertemente acoplados).
2.
3.
Diagrama
Ventajas
1. Acoplamiento
abstracto
entre
Sujeto
yObservador: Todo lo que un sujeto sabe es que tiene una lista de observadores que se ajusta a la interfaz simple de la clase abstracta Observador.
1.1
El sujeto no conoce la clase concretade ningún observador. Por lo tanto el acoplamiento entre sujetos y observadores es mínimo, pueden pertenecer a diferentes capas de abstracción de un sistema.
1.2
Ventajas (continuación)
2.Capacidad
difusión:
2.1
de
comunicación
mediante
A diferencia de una petición ordinaria, la notificación enviada por un sujeto no necesita especificar su receptor, se envíaautomáticamente a todos los objetos interesados que se hayan suscripto a ella.
Al sujeto no le importa cuantos objetos interesados haya; su única responsabilidad es notificar a sus observadores(libertad de añadir y quitar observadores en cualquier momento).
2.2
Desventajas
1. Actualizaciones inesperadas:
Una operación aparentemente inofensiva sobre el sujeto puede dar lugar a una seriede actualizaciones en cascada de los observadores y sus objetos dependientes.
1.1
No se especifica el receptor de una Actualización, se envía a todos los objetos interesados.
1.2
Regístrate para leer el documento completo.