什么是事件?
事件是系统中发生的任何动作或变化。例如,当客户在网站上进行购买时,可以将其视为事件。其他示例包括点击按钮或数据更新。
该体系结构基于三个主要组成部分:
是生成事件的系统的一部分。
事件经纪人:一个将生产者事件分发给消费者的中介。
事件发生时,将其捕获并发送到经纪人,该经纪人将其交付给对此类事件感兴趣的服务或系统。
[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
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3