De modo que cuando cambia el estado de un objeto, todos los objetos que dependen de él son notificados y cambian en consecuencia.
Hay muchas formas de implementar el patrón de observador: este patrón debe incluir dos roles: observador y objeto que se observan. Existe una relación lógica de "observación" entre el observador y el observador. Cuando el observador cambia, el observador observará tales cambios y emitirá los cambios correspondientes.
/*** Interfaz Observer: Observer, clase que necesita usar el modo Observer necesita implementar esta interfaz*/Public Interface Observer {public void Update (Obj OBJ);} /*** Observador (generalmente clase abstracta, conveniente para la expansión): Declarar método, se ha producido algunos cambios, notificar al observador del cambio. */interfaz pública ha sido OBServed {public void addObServer (Observer Obs); // Agregar objeto Observer Public void RemoLoBServer (Observer Obs); // Object Observer Public Void NotifyObServers (String cambiado); // Notificar al objeto Observer para cambiar correspondientemente} /*** Observador de destino: implementa la interfaz del observador y realice las operaciones correspondientes en el objeto Observer*/public class ConcreteWatched Implements BeobServed {// Observer Object Collection List <Smerver> List = New ArrayList <Sserver> (); @Override public void addObServer (Observer Obs) // Agregar el observador {if (! List.Contains (obs)) {list.add (obs); }} @Override public void RemoLoBServer (Observer Obs) // El observador le dice al observador que cancele la observación y elimine el observador del contenedor {if (list.contains (obs)) {list.remove (OBS); }} @Override public void notifyObServers (String Change) {// atraviesa los métodos de objeto y llamado por separado para las operaciones de notificación de actualización para (Observer Obs: List) {Obs.Update (Change); }}} /*** Target observado (observador específico)*/public class especificatSwatcher implementa observador {@Override public void Update (obj Obj) {System.out.println (obj.ToString ()); // Cambios que ocurren}}/*** Test Code* @Description:*/public class Test {public static void Main (String []) Concretewatched (); Observer Obs1 = new SpececSeWatcher (); Observer obs2 = new SpecepSeWatcher (); Observer Obs3 = new SpececSeWatcher (); bobs.AddoBServer (OBS1); // Agregar objeto Observer Bobs.AdDobServer (OBS2); Bobs.AddoBServer (OBS3); bobs.notifyObServers ("*** notificado ***"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Finalmente imprima el resultado:
Lo anterior se trata de este artículo, espero que sea útil para todos aprender la programación de Java.