Die Hauptforschung in diesem Artikel ist die Implementierung von Java -Rückruffunktionen und Beobachtermustern. Der spezifische Einführung und der Implementierungscode sind wie folgt.
Der Beobachtermodus (manchmal als Publish-Subscribe-Modus, Model-View-Modus, Quelllistener-Modus oder Slave-Modus bezeichnet) ist eine Art Software-Design-Modus. In diesem Modus verwaltet ein Zielobjekt alle Beobachterobjekte, die davon abhängen, und gibt aktiv Benachrichtigungen aus, wenn sich sein Zustand ändert. Dies wird normalerweise erreicht, indem die Methoden jedes Beobachters aufgerufen werden. Dieses Muster wird normalerweise zur Implementierung von Ereignisverarbeitungssystemen verwendet.
Tatsächlich verfügt das Beobachtermodell über eine gemeinsame Nutzungsumgebung mit den oben genannten Brücken und Strategien: Unabhängig voneinander verkapseln Sie Änderungen, um eine maximale Wiederverwendung und Entkopplung zu erzielen. Der Unterschied zwischen dem Beobachter und den beiden letzteren besteht darin, dass das Ziel im Beobachtermuster und die Änderung des Beobachters nicht unabhängig sind, sondern eine gewisse Verbindung haben.
Der Beobachtermodus wird in Java über die beobachtbare Klasse und die Observer -Schnittstelle implementiert. Ein Observer -Objekt überwacht die Änderungen eines beobachtbaren Objekts. Wenn sich das beobachtbare Objekt ändert, wird der Beobachter benachrichtigt und kann entsprechende Arbeiten ausführen.
Paket com.demo.test; import java.util.observable; import Java.util.observer; // Im Beobachtermodus behält die Zielklasse alle Beobachter Referenzen bei, während der Rückruf nur eine Referenzpublikumklasse beibehält öffentlichklasse. Objekt arg) {system.out.println ("konkreteObservera update");}} // Beobachter Bstatic Class ConcreteObserverb implementiert Observer {@Override public void update (beobachtbar O, Object arg) {System.out.println ("ConcreteoBoBaboBable -Update -Updat -Struktur -strukturelles Objekt strukturiertes Objekt. {public void ChangeValue () {// Protected -Methode kann nur in setChanged () -Berechnung () aufgerufen werden. Callback;} public void call () {callback.oncall ();}} public static void main (String [] args) {// ObserverConcreteObservera Observera = new Concreteobservera (); konkreteobserverb = New Concreteobserverb (); KonkreterObservable (); beobachtbar.addobserver (observera); beobachtbar.addobserver (observerb); System.out.println ("countObservers =" + Observable.Countobserververs (); Observable.ChangeValue (); // Callback -Funktionsfunktionsfunktion Callbackdemo Callbackdemo Callbackdemo Callbackdemo = newnaNo = newnalue (). CALLBACKDEMO (); CALLBACKDEMO.SETLISTENER (new icallback () {@Override public void oncall () {System.out.println ("Callback oncall");}}); CallbackDemo.call ();}}}Ausgangsergebnis:
countObservers = 2
ConcreteObserverb -Update
Betonobsera -Update
Rückruf oncall
Aus dem obigen Code können wir feststellen, dass die Rückruffunktion zum Beobachtermuster gehört und der Zweck besteht, den Round-Robin-Mechanismus zu ersetzen und die Kopplung zwischen Komponenten zu verringern. Im Beobachtermodus behält die Zielklasse alle Beobachter Referenzen bei, während der Rückruf nur eine Referenz beibehält.
In diesem Artikel dreht sich alles um Java -Callback -Funktionen und den Beobachter -Musterinstanzcode. Ich hoffe, er wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!