Wenn sich der Zustand eines Objekts ändert, werden alle Objekte, die davon abhängen, benachrichtigt und entsprechende Änderungen durchführen.
Es gibt viele Möglichkeiten, das Beobachtermuster zu implementieren: Dieses Muster muss zwei Rollen enthalten: Beobachtung und Objekt werden beobachtet. Es besteht eine logische Beziehung der "Beobachtung" zwischen dem Beobachter und dem Beobachter. Wenn sich der Beobachter ändert, wird der Beobachter solche Änderungen beobachten und entsprechende Änderungen ausstellen.
/*** Observer -Schnittstelle: Beobachter, Klasse, die den Observer -Modus verwenden muss, um diese Schnittstelle zu implementieren
/*** Beobachter (normalerweise abstrakte Klasse, bequem für die Expansion): Die Deklare -Methode hat einen gewissen Veränderung aufgetreten, den Beobachter über die Änderung informiert. */Public Interface wurde beobachtet {public void Addobserver (Observer OBS); // Observer -Objekt öffentliche void removeObserver (Observer OBS); // Observer -Objekt öffentliche void NotifyObserver (String geändert); // das Observer -Objekt, um entsprechend zu ändern}}}}}}}} /*** Zielbeobachter: Implementieren Sie die Schnittstelle des Beobachters und führen Sie entsprechende Vorgänge im Observer -Objekt aus*/öffentliche Klasse Concreetewatched -Geräte beobachtet wurden {// Observer -Objektsammlung private Liste <Observer> list = new ArrayList <Beerver> (); @Override public void Addobserver (Observer obs) // Fügen Sie den Beobachter hinzu {if (! List.contains (obs)) {list.add (obs); }} @Override public void removeObserver (Beobachter obs) // Der Beobachter fordert dem Beobachter an, die Beobachtung abzusagen und den Beobachter aus dem Container {if (list.contains (obs)) {list.remove (obs); }} @Override public void mellifyObServers (String -Änderung) {// Überqueren Sie das Objekt und rufen Sie die Methoden für Aktualisierungsmeldungen für (Observer OBS: List) {ob.update (Änderung); }}} /*** gezielt beobachtet werden (spezifischer Beobachter)*/public class spezifische Watcher implementiert Observer {@Override public void Update (Objekt obj) {System.out.println (obj.toString ()); // Änderungen vorkommen Konkretewatched (); Observer OBS1 = neuer spezifischer Watcher (); Observer OBS2 = new SpecialWatcher (); Observer OBS3 = NEW spezifischWatcher (); bobs.addobserver (OBS1); // Observer -Objekt bob.addobserver (OBS2); bobs.addobserver (OBS3); bobs.notifyObservers ("*** benachrichtigt ***"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Schließlich drucken Sie das Ergebnis:
Das obige dreht sich alles um diesen Artikel. Ich hoffe, dass es für alle hilfreich sein wird, Java -Programme zu lernen.