De sorte que lorsque l'état d'un objet change, tous les objets qui en dépendent sont notifiés et subissent des changements correspondants.
Il existe de nombreuses façons de mettre en œuvre le modèle d'observateur: ce modèle doit inclure deux rôles: l'observateur et l'objet observés. Il existe une relation logique de «observation» entre l'observateur et l'observateur. Lorsque l'observateur change, l'observateur observera ces changements et émettra des changements correspondants.
/ ** * Interface d'observateur: Observer, Classe qui doit utiliser le mode Observer doit implémenter cette interface * / interface publique Observer {public void Update (objet obj);} / ** * Observer (généralement une classe abstraite, pratique pour l'expansion): Déclarer la méthode, un changement s'est produit, informez l'observateur du changement. * / interface publique a été observe {public void addObserver (Observer Obs); // Ajouter un objet observateur public void removeObserver (Observer Obs); // Objet Observer public void notifyObservers (String Changed); // notifier l'objet Observer pour changer de manière correspondante} / ** * Observer Target: implémentez l'interface de l'observateur et effectuez des opérations correspondantes sur l'objet Observer * / classe publique Concretewatched implémente observé {// Objectif Object Collection private list <OBSERVER> list = new ArrayList <Berderver> (); @Override public void addObserver (Observer obs) // Ajouter l'observateur {if (! List.contains (obs)) {list.add (obs); }} @Override public void demoveObserver (Observer Obs) // L'observateur dit à l'observateur d'annuler l'observation et de supprimer l'observateur du conteneur {if (list.contains (obs)) {list.remove (Obs); }} @Override public void notifyObservers (String Change) {// Traverse les méthodes d'objet et d'appel séparément pour les opérations de notification de mise à jour pour (Observer Obs: list) {obs.update (modifier); }}} / ** * ciblé étant observé (observateur spécifique) * / classe publique spécifiquewatcher implémente l'observateur {@Override public void update (objet obj) {System.out.println (obj.tostring ()); // modifications se produit}} / ** * Test Code * @description: * / public class test {public static Void Main (String []) CONCRETEWATCHED (); Observer obs1 = new SpecificWatcher (); Observer obs2 = new SpecificWatcher (); Observer obs3 = new SpecificWatcher (); bobs.addoBserver (obs1); // ajouter l'objet observateur bobs.addobserver (obs2); bobs.addobserver (obs3); bobs.notifyObservers ("*** notifié ***"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Imprimez enfin le résultat:
Ce qui précède concerne cet article, j'espère qu'il sera utile pour tout le monde d'apprendre la programmation Java.