ホームページ > Java > &#&チュートリアル > イベント駆動型アーキテクチャ

イベント駆動型アーキテクチャ

Patricia Arquette
リリース: 2025-01-08 06:10:40
オリジナル
444 人が閲覧しました

Arquitetura Orientada a Eventos

イベント駆動アーキテクチャ (AOE) は、イベントにリアルタイムで反応するシステムを開発するために使用される設計モデルです。このタイプのアーキテクチャは、電子商取引や銀行アプリケーションなど、情報を迅速に処理する必要があるシナリオで非常に役立ちます。

イベントとは何ですか?
イベントとは、システム内で発生するアクションまたは変更です。たとえば、顧客が Web サイトで購入を行う場合、これはイベントと見なすことができます。他の例には、ボタンのクリックやデータの更新などがあります。

AOE はどのように機能しますか?
このアーキテクチャは、次の 3 つの主要コンポーネントに基づいて動作します。

イベントプロデューサー: これらは、イベントを生成するシステムの部分です。
イベント コンシューマ: イベントの受信とイベントへの反応を担当します。
イベント ブローカー: プロデューサーからコンシューマーにイベントを配布する仲介者。
イベントが発生すると、それがキャプチャされてブローカーに送信され、ブローカーはそのイベントの種類に関係するサービスまたはシステムにイベントを配信します。

AOE の利点
スケーラビリティ: イベントを非同期で処理できるため、システムを効率的に拡張できます。
デカップリング: 生産者と消費者はお互いの詳細を知る必要がなくなり、システムがより柔軟になります。
リアルタイム応答: 変更に迅速に対応する必要があるアプリケーションに最適です。

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

ログイン後にコピー

この例では何が起こりますか?
プロデューサー: OrderSystem クラスは注文を作成し、関係者に通知します。
コンシューマ: EmailSend クラスはイベントに反応し、作成された注文に電子メールを送信します。
デカップリング: TheOrderSystem は、コンシューマーがイベントに対して何を行うかを知りません。イベントを発行するだけです。

はい、先ほども言いましたが、これはリスナーを使用してクラス間の通信をシミュレートする非常に単純な例でした。

ありがとう

以上がイベント駆動型アーキテクチャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート