Este documento describe el patrón de diseño Observer. El patrón permite que un objeto (sujeto) notifique automáticamente a otros objetos (observadores) sobre cambios en su estado. El sujeto mantiene una lista de observadores y los notifica cuando cambia. Los observadores implementan una interfaz que define un método para actualizarse cuando cambia el sujeto.
el patrón Observer es un patrón de comportamiento que permite relacionar diferentes objetos entre si en torno a uno Principal, así cada vez que este ultimo cambie su estado, los demás también cambiaran de forma automática.
el patrón Observer es un patrón de comportamiento que permite relacionar diferentes objetos entre si en torno a uno Principal, así cada vez que este ultimo cambie su estado, los demás también cambiaran de forma automática.
Se revisan tres conceptos fundamentales en la programación orientada a objetos, recuerde tener presente repasar el concepto de herencia de la clase anterior para entender los ejemplos propuestos.
La herencia es uno de los temas claves para entender la programación orientada a objetos, ya que permite especializar el comportamiento de una clase y extender un concepto que haya sido bien definido previamente en una clase superior.
Se revisan tres conceptos fundamentales en la programación orientada a objetos, recuerde tener presente repasar el concepto de herencia de la clase anterior para entender los ejemplos propuestos.
La herencia es uno de los temas claves para entender la programación orientada a objetos, ya que permite especializar el comportamiento de una clase y extender un concepto que haya sido bien definido previamente en una clase superior.
Manual para instalar una aplicación cliente permite tener una interfaz de comunicación con un servidor web, para poder realizar operaciones de mantenimiento de archivos sobre él
Se explican algunos de los elementos necesarios para crear la interfaz gráfica de usuario, navegación entre las vista de una aplicación y el manejo de datos dentro de la aplicación.
Trabajo de investigación
Si quieren informarse mas sobre la Programación Orientada a Objetos, visita mi blog aquí les dejo un link:
http://bloggerlisevelinvasquez.blogspot.pe/2017/04/programacion-orientada-objetos.html
Instrucciones del procedimiento para la oferta y la gestión conjunta del proceso de admisión a los centros públicos de primer ciclo de educación infantil de Pamplona para el curso 2024-2025.
2. DESING PATTERN
Los Patrones de diseño son herramientas para solucionar problemas de
Diseño enfocados al desarrollo de software, estos patrones deben ser
reusables permitiendo así que sean adaptados a diferentes
problemáticas.
Existen 3 grupos de patrones:
Creacionales: Giran en torno a la creación de Objetos
Estructurales: Se enfocan en la estructura de clases y objetos que las
componen
De Comportamiento: Definen el modo en que las clases y objetos son
relacionados, el comportamiento he interacción entre ellos.
3. OBSERVER
Es un patrón de
comportamiento permite
actualizar automáticamente
el estado de un objeto
dependiendo del estado de
un objeto principal, cuando
el objeto principal cambia
sus objetos dependientes se
actualizan.
5. SIGNIFICADO LINEAS
(#) Los atributos/operaciones protegidos están visibles para las clases
derivadas de la original.
6. PARTICIPANTES
Tendremos sujetos concretos cuyos cambios pueden resultar interesantes
a otros y observadores a los que al menos es interesa estar pendientes de
un elemento y en un momento dado, reaccionar ante sus notificaciones
de cambio. Todos los sujetos tienen en común que un conjunto de
objetos quieren estar pendientes de ellos. Cualquier
elemento que quiera ser observado tiene que permitir indicar:
1. “Estoy interesado en tus cambios”.
2. “Ya no estoy interesado en tus cambios”.
7. El observable tiene que tener, además, un mecanismo de aviso a los
interesados.
Sujeto (Subject): El sujeto proporciona una interfaz para agregar
(attach) y eliminar (detach) observadores. El Sujeto conoce a todos
sus observadores.
Observador (Observer): Define el método que usa el sujeto para
notificar cambios en su estado (update/notify).
8. Sujeto Concreto (ConcreteSubject): Mantiene el estado de interés
para los observadores concretos y los notifica cuando cambia su
estado. No tienen porque ser elementos de la misma jerarquía.
Observador Concreto (ConcreteObserver): Mantiene una referencia
al sujeto concreto e implementa la interfaz de actualización, es decir,
guardan la referencia del objeto que observan, así en caso de ser
notificados de algún cambio, pueden preguntar sobre este cambio.
9. METODOS IMORTANTES
addObserver (Observador o): Añadir observadores en el conjunto de
observadores de este tema u objeto observalbel.
deleteObserver (Observador o): Borrar observadores en el conjunto de los
observadores.
hasChanged (): Comprobar si el objeto ha cambiado.
clearChanged (): Este método indicará que sujeto no tiene cambios o todos
los observadores ha sido notificada cuando se realizan cambios.
notifyObservers (): Notificar a todos los observadores si el objeto ha
cambiado.
Update (Observable Ob, Object arg): Este metodo es llamado cuando el
sujeto se cambia.
Interfaz pública Observador: Cualquier clase que implemente esta interfaz
debe ser notificado cuando el objeto sujeto o cambiar su estado observable.
10. PROBLEMA
Cuando tenemos una dependencia de 1 a muchos entre objetos, y se
espera que cuando el estado de un objeto cambie, todos los objetos
dependientes de este también cambien de forma automática.
EJEMPLO:
Se tiene una aplicación de venta de productos administrada por
diferentes vendedores con diferentes aplicativos, se espera que cada
vez que cambie la cantidad de productos disponibles, la aplicación de
cada vendedor automáticamente actualicé el modulo de ventas con los
nuevos.
11. SOLUCIÓN
Se aplica el patrón observador para desacoplar la clase que contenga
objetos dependientes, estableciendo relaciones entre los objetos, para
esto se tiene una clase SujetoConcreto que será el objeto principal y
tendremos los objetos cliente o dependientes que serian de clase
ObservadorConcreto, cuando el estado del SujetoConcreto cambia, se
envía una señal a cada uno de sus Observadores y estos automáticamente
cambian su estado basados en el estado del objeto principal.
12. EJEMPLO 1
Patrón Observer utiliza tres clases de actores. Asunto,
Observador y cliente. El sujeto es un objeto que tiene
métodos para unir y separar los observadores a un
objeto de cliente. Hemos creado una clase
abstracta Observador y una clase concreta Asunto que
se está extendiendo la clase Observador.
ObserverPatternDemo , nuestra clase de demostración,
utilizará Asunto objeto de clase y concreto para
mostrar el patrón de observador en la acción.
13.
14. SOLUCIÓN
Paso 1 – Crear la clase Subject.
Paso 2 - Crear la clase Observer.
Paso 3 – Crear las clases de
concreteObserver, en este caso:
hexaObserver, BinaryObserver y
OctalObserver.
Paso 4 – Crear la clase
ObserverPatternDemo.
15. EJEMPLO 2
Usted tiene un préstamo en el que la tasa de interés
está sujeta a cambios y cuando cambia, Préstamo
notifique al periódico o Internet los medios de
comunicación para mostrar la nueva tasa de interés
del préstamo.
Para implementar este tenemos un Asunto de
interfaz que contiene métodos para añadir, eliminar
y notificar a los observadores y un Observador de
interfaz que contiene la actualización (interés
int) método que será llamado por la aplicación
Asunto cuando los cambios de tipos de interés.
16. SOLUCIÓN
Paso 1 – Crear la interfaz Observador.
Paso 2 - Crear la interfaz Asunto.
Paso 3 – Crear la clase Prestamo que extiende de la interface Asunto.
Paso 4 – Crear la clase Newspaper e Internet que extienden de la
interface Observador.
Paso 5 – Crear la clase ObserverTest la cual contiene el main.
RESULTADO: