Penelitian utama dalam artikel ini adalah implementasi fungsi panggilan balik Java dan pola pengamat. Pendahuluan spesifik dan kode implementasi adalah sebagai berikut.
Mode Observer (kadang-kadang disebut Mode Penerbitan-Penjanggaan, Mode Model-View, Mode Source-Listener atau Slave Mode) adalah jenis mode desain perangkat lunak. Dalam mode ini, objek target mengelola semua objek pengamat yang bergantung padanya dan secara aktif mengeluarkan pemberitahuan ketika status berubah. Ini biasanya dicapai dengan memanggil metode masing -masing pengamat. Pola ini biasanya digunakan untuk mengimplementasikan sistem pemrosesan acara.
Faktanya, model pengamat memiliki lingkungan penggunaan yang sama dengan jembatan dan strategi yang disebutkan di atas: merangkum perubahan secara independen untuk mencapai penggunaan kembali dan decoupling maksimal. Perbedaan antara pengamat dan dua yang terakhir adalah bahwa target dalam pola pengamat dan perubahan dalam pengamat tidak independen, tetapi memiliki beberapa koneksi.
Mode pengamat diimplementasikan di Java melalui kelas yang dapat diamati dan antarmuka pengamat. Objek pengamat memantau perubahan objek yang dapat diamati. Ketika objek yang dapat diamati berubah, pengamat diberitahu dan dapat melakukan pekerjaan yang sesuai.
package com.demo.test;import java.util.Observable;import java.util.Observer;//In the observer mode, the target class maintains all observers' references, while the callback only maintains a reference public class ObserverCallbackDemo {// ObserverA Astatic class ConcreteObserverA implements Observer {@Override public void update(Observable o, Object arg) {System.out.println ("Pembaruan ConcreteObServera");}} // Observer Bstatic Class ConcreteObServerB mengimplementasikan pengamat {@Override public void pembaruan (Observable o, objek arg) {System.out.println ("CONCRETEOBSERVERB UPDATEY" changeValue() {//protected method can only be called in subclass setChanged();notifyObservers();}}// Callback function interface interface ICallback {public void onCall();}// Callback class static class CallbackDemo {private ICallback callback;public void setListener(ICallback callback) {this.callback = callback;}public void call () {callback.oncall ();}} public static void main (string [] args) {// observerconcreeteObservera observera = new concreteObservera (); concreteObserverbable ObserverB = new ConcreteObserverb (); concreteObservable Observable = ConcreteObservable();observable.addObserver(observerA);observable.addObserver(observerB);System.out.println("countObservers = " + observable.countObservers());observable.changeValue();// Callback function CallbackDemo callbackDemo = new CallbackDemo();callbackDemo.setListener(new Icallback () {@Override public void oncall () {System.out.println ("Callback Oncall");}}); callbackDemo.call ();}}}Hasil output:
countoBserver = 2
Pembaruan ConcreteObServerb
Pembaruan ConcreteObServera
Callback Oncall
Dari kode di atas, kita dapat melihat bahwa fungsi callback harus dimiliki oleh pola pengamat, dan tujuannya adalah untuk mengganti mekanisme round-robin dan mengurangi kopling antara komponen. Dalam mode pengamat, kelas target mempertahankan referensi semua pengamat, sedangkan panggilan balik hanya mempertahankan referensi.
Di atas adalah semua tentang fungsi panggilan balik java dan kode instance pola pengamat dalam artikel ini, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!