Artikel ini menjelaskan mode pendengar pola desain java. Bagikan untuk referensi Anda, sebagai berikut:
Mode pendengar memiliki tiga elemen - sumber acara, objek acara, dan pendengar.
Sumber Acara: Sesuai namanya, sumber acara, seperti tombol yang diklik, milik objek yang didengarkan;
Objek acara: Ini sering bingung dengan sumber acara. Ini sering digunakan untuk mengemas sumber acara. Ingat, ini adalah acara, seperti mengklik acara. Perbedaan antara sumber acara berbeda dari sumber acara. Tidak ada cara untuk merasakannya;
Pendengar: Ini adalah inti dari mode pendengar, yang mendefinisikan tindakan setelah suatu peristiwa terjadi. Biasanya, objek acara dimasukkan sebagai parameter sebagai fungsi yang ditentukan dalam pendengar.
Ini adalah kastanye sederhana:
Latar belakang ceritanya adalah bahwa Xiao Ming adalah anak yang tidak higienis. Ibunya sangat khawatir tentang kesehatannya dan menetapkan bahwa tangannya harus dicuci sebelum makan.
Tentukan anak nakal. Anak -anak nakal adalah objek yang akan dipantau, sumber peristiwa, dan semua acara dikirim oleh sumber peristiwa, yang tampaknya omong kosong.
anak kelas publik {nama string pribadi; Private Reministener REAINCERRistener; anak publik (nama string) {this.name = name; } public void eat () {if (null! = RINGLISTERen) {rinderistener.remind (baru mengingatkan whivinghandsevent (ini)); } System.out.println ("Anak makan ..."); } public void addListener (pengingat pendengar) {ingatkanListener = pendengar; }}Berikutnya adalah melihat objek acara, yang, seperti yang disebutkan di atas, membungkus sumber acara. Di sini kami mendefinisikan acara cuci tangan pra-makan.
Kelas Publik Mengingatkan Bersih {anak pribadi anak; publik mengingatkan whithandsevent (anak anak) {this.child = anak; }} Objek acara mendefinisikan properti dan status acara.
Segera setelah peristiwa itu terjadi, tindakan pendengar diingatkan untuk mencuci tangan.
kelas publik mengingatkan {public void mengingatkan (mengingatkan orang yang mengingatkan orang yang tidak peduli) {System.out.println ("Dengarkan ibu, mencuci tangan sebelum makan ..."); }}Perhatikan bahwa pendengar terutama merangkum tindakan, itu saja.
Kode di atas hanya untuk menggambarkan prinsip mode pendengar, dan kode ini sederhana dan tidak terlalu elegan.
Berikut ini mewarisi atau mengimplementasikan perpustakaan standar Java, dan menulis sepasang kode dengan santai. Sudah larut malam, dan saya akan menjelaskannya jika saya punya waktu.
anak kelas publik {nama string privat; Daftar Privat <Dengarer> Liteners; anak publik (nama string) {this.name = name; this.liteners = lists.newarraylist (); } public void eat () {for (listener listener: liteners) {if (contoh pendengar dari washinghandslistener) {washinghandslistener washinghandslistener = (washinghandslistener) pendengar; washinghandslistener.fireaftereventinvoked (washinghandsevent baru (ini, "cuci tangan Anda")); }} System.out.println ("Eat ..."); } public void addListener (pendengar pendengar) {liteners.add (pendengar); }} Acara kelas publik memperluas EventObject { /*** Membangun acara prototipe. * * @param Sumber objek tempat acara awalnya terjadi. * @Throws IllegalArgumentException Jika sumbernya nol. */ acara publik (sumber objek) {super (sumber); }} kelas publik WashingHandSEvent memperluas acara {private string eventName; /*** Membangun acara prototipe. * * @param Sumber objek tempat acara awalnya terjadi. * @Throws IllegalArgumentException Jika sumbernya nol. */ washinghandsevent publik (sumber objek, string eventName) {super (sumber); this.eventName = eventName; } public String getEventName () {return eventName; } public void setEventName (String eventName) {this.eventName = eventName; }} pendengar antarmuka publik memperluas java.util.eventListener {public void fireaftereventinvoked (acara acara);} kelas publik washinghandslistener mengimplementasikan pendengar {@override void public fireAftereventInvoked (acara) {washinghandsevent washinghandsevent = (washinghand -washinghand; System.out.println ("Persiapan sebelum makan" + WashingHandsevent.getEventName ()); }} tes kelas publik {public static void main (string [] args) {kid xiaoming = new Kid ("xiaoming"); xiaoming.addlistener (new washinghandslistener ()); xiaoming.eat (); }}Hasil output:
Untuk konten yang lebih terkait dengan Java, pembaca yang tertarik dengan situs ini dapat melihat topik: "Tutorial Struktur Data Java dan Algoritma", "Ringkasan Java Operation Dom Node Tips", "Ringkasan Tips Operasi Java File dan Direktori" dan "Ringkasan Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.