Rumah >Java >javaTutorial >Seni Bina Didorong Peristiwa
Event-Driven Architecture (AOE) ialah model reka bentuk yang digunakan untuk membangunkan sistem yang bertindak balas terhadap peristiwa dalam masa nyata. Seni bina jenis ini sangat berguna dalam senario yang memerlukan untuk memproses maklumat dengan cepat, seperti dalam e-dagang dan aplikasi perbankan.
Apakah itu acara?
Peristiwa ialah sebarang tindakan atau perubahan yang berlaku dalam sistem. Contohnya, apabila pelanggan membuat pembelian di tapak web, ini boleh dianggap sebagai acara. Contoh lain termasuk klik butang atau kemas kini data.
Bagaimana AOE berfungsi?
Seni bina berfungsi berdasarkan tiga komponen utama:
Pengeluar acara: Ini adalah bahagian sistem yang menjana acara.
Pengguna acara: Mereka bertanggungjawab untuk menerima dan bertindak balas terhadap acara.
Broker acara: Pengantara yang mengedarkan acara daripada pengeluar kepada pengguna.
Apabila peristiwa berlaku, ia ditangkap dan dihantar kepada broker, yang menghantarnya kepada perkhidmatan atau sistem yang berminat dengan jenis acara tersebut.
Manfaat AOE
Kebolehskalaan: Membolehkan sistem berkembang dengan cekap, kerana peristiwa boleh diproses secara tak segerak.
Penyahgandingan: Pengeluar dan pengguna tidak perlu mengetahui butiran masing-masing, menjadikan sistem lebih fleksibel.
Respons masa nyata: Sesuai untuk aplikasi yang perlu bertindak balas dengan cepat terhadap perubahan.
Contoh sangat mudah dalam Java OOP ☕:
// Definição do evento class PedidoCriadoEvent { private String idPedido; public PedidoCriadoEvent(String idPedido) { this.idPedido = idPedido; } public String getIdPedido() { return idPedido; } } // Interface para o consumidor (listener) interface PedidoCriadoListener { void onPedidoCriado(PedidoCriadoEvent event); } // Produtor do evento class SistemaDePedidos { private PedidoCriadoListener listener; public void registrarListener(PedidoCriadoListener listener) { this.listener = listener; } public void criarPedido(String idPedido) { System.out.println("Pedido criado com ID: " + idPedido); if (listener != null) { listener.onPedidoCriado(new PedidoCriadoEvent(idPedido)); } } } // Consumidor do evento class EnvioDeEmail implements PedidoCriadoListener { @Override public void onPedidoCriado(PedidoCriadoEvent event) { System.out.println("Enviando e-mail para o pedido: " + event.getIdPedido()); } } // Simulação public class Main { public static void main(String[] args) { SistemaDePedidos sistema = new SistemaDePedidos(); EnvioDeEmail envioDeEmail = new EnvioDeEmail(); sistema.registrarListener(envioDeEmail); sistema.criarPedido("12345"); } }
Apakah yang berlaku dalam contoh ini?
Pengeluar: Kelas OrderSystem membuat pesanan dan memberitahu pihak yang berminat.
Pengguna: Kelas EmailSend bertindak balas terhadap acara tersebut, menghantar e-mel kepada pesanan yang dibuat.
Decoupling: TheOrderSystem tidak tahu apa yang pengguna akan lakukan dengan acara tersebut, ia hanya mengeluarkannya.
Ya, seperti yang saya katakan, ia adalah contoh yang sangat mudah, mensimulasikan komunikasi antara kelas menggunakan Pendengar.
Terima kasih
Atas ialah kandungan terperinci Seni Bina Didorong Peristiwa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!