”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 事件驱动架构的魅力

事件驱动架构的魅力

发布于2025-04-21
浏览:998

Arquitetura Orientada a Eventos

事件 - 方向的架构(AOE)是一种设计模型,用于开发对真实时间事件做出反应的系统。在您需要快速处理信息(例如电子商务和银行应用程序)的情况下,这种类型的体系结构非常有用。

什么是事件? 事件是系统中发生的任何动作或变化。例如,当客户在网站上进行购买时,可以将其视为事件。其他示例包括点击按钮或数据更新。

AOE如何工作?

该体系结构基于三个主要组成部分:

事件生产者:

是生成事件的系统的一部分。
事件经纪人:一个将生产者事件分发给消费者的中介。 事件发生时,将其捕获并发送到经纪人,该经纪人将其交付给对此类事件感兴趣的服务或系统。
[2 可伸缩性:允许系统有效增长,因为事件可以异步处理。 拆卸:生产者和消费者不必了解彼此的细节,从而使系统更加灵活。 实时响应:非常适合需要快速反应才能更改的应用程序。
[2

//事件定义 上课问tocreteevent { 私人字符串iDed; public quilterocrete(字符串iDed){ this.idpedo = idpedi; } public String getIdpeded(){ 返回; } } //消费者界面(侦听器) 接口证书列表{ 无效的Onpedidocria(Asdicated事件); } //活动生产者 类系统{ 私人证书-ochroutolistener倾听者; 公共空白登记官(Listerer Corpadocrecrious){ this.listener =侦听器; } 公共void创建(IDPED字符串){ System.out.println(“使用ID创建的顺序:” IDPEDED); 如果(侦听器!= null){ 侦听器。 } } } //活动消费者 班级运输人 - 实施证书{ @Override 公共空白ondedidoccou system.out.println(“将电子邮件提交到订单:” event.getIdpeded()); } } // 模拟 公共类Main { 公共静态void main(string [] args){ 系统系统= new SystemPeed(); Shiptinge -Mail Sentiodee -mail = new Shiptingee -mail(); System.RegStrateListener(运输-mail); 系统。保存(“ 12345”); } }
在此示例中会发生什么?

producer:
消费者:

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

是的,正如我所说的那样,是一个非常简单的示例,使用听众使用类交流模拟。

valeeeu

版本声明 本文转载于:https://dev.to/duzera/arquitetura-orientada-a-eventos-jmc?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3