Observer es un patrón de diseño de comportamiento que permite a un objeto notificar a otros objetos sobre cambios en su estado.
El patrón Observer proporciona una forma de suscribirse y cancelar la subscripción a estos eventos para cualquier objeto que implementa una interfaz suscriptora.
En el sitio web de comercio electrónico, los artículos se agotan de vez en cuando. Puede haber clientes interesados en un artículo concreto que se agotó. Hay tres soluciones a este problema:
El cliente comprueba la disponibilidad del artículo cada cierto tiempo.
El comercio electrónico bombardea a los clientes con los nuevos artículos disponibles en stock.
El cliente se suscribe tan solo al artículo particular en el que está interesado y recibe notificaciones si éste se encuentra disponible. Además, varios clientes pueden suscribirse al mismo producto.
La opción 3 es la más viable, y en esto consiste el patrón Observer. Los principales componentes del patrón Observer son:
Sujeto, la instancia que publica un evento cuando sucede algo.
Observador, que se inscribe a los eventos del sujeto y recibe notificaciones cuando suceden.