El Teofi Patrón de diseño Observer

visitas.

EL propósito de esta entrada es dar a conocer un patrón de diseño muy útil y que no sugiere nada de complejidad, pero que si por el contrario puede ser muy valioso a la hora de diseñar muy bien las aplicaciones que cumplen con las necesidades que el satisface.

Tales necesidades se relacionan con componentes del sistema (sean gráficos o no) que necesitan estarse notificados de manera sincrónica o no de ciertos eventos que ocurren en otros componentes de la aplicación de una manera transparente y guardando proporciones de cohesión y acoplamiento, haciendo  la satisfacción de la necesidad independiente al chicharron que directamente se quiera atacar.

En este ejemplo que les comparto propongo un componente reloj que se encarga de obtener la hora cada segundo, sin embargo podemos tener n cantidades de componentes externos a el del sistema que necesitan conocer algun cambio que el haya presentado (en este caso el cambio de hora) y estos pueden ser notificados de manera transparente como se aprecia en las siguientes lineas de codigo.

Primero mostremos el componente reloj, este componente hereda de la clase Observable de JAVA y es obligado y notifica cambios a través de los métodos setChanged() y notifyObservers():

Luego la clase sencilla que encapsula los objetos que queremos notificar.


Los observadores que son los encargados de recibir las notificaciones arrojadas por los observables y darle su manejo a su antojo:


Finalmente una clase principal que construye el reloj le agrega observadores y lo arranca



Reitero, este código aunque sencillo, maneja conceptos muy importantes de el patrón Observer como tal. Por ejemplo podrían crearse múltiples Observables y no un solo reloj y hacer que los observadores compartan observables, etc.

Comentarios

Entradas más populares de este blog

Un par de cuadrados para todos

Dominós para todos. Parte I.

Crocancia de cuadrados en abundancia