Rumah > Java > javaTutorial > Seni Bina Didorong Peristiwa

Seni Bina Didorong Peristiwa

Patricia Arquette
Lepaskan: 2025-01-08 06:10:40
asal
481 orang telah melayarinya

Arquitetura Orientada a Eventos

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");
    }
}

Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan