什麼是事件?
事件是系統中發生的任何動作或變化。例如,當客戶在網站上進行購買時,可以將其視為事件。其他示例包括點擊按鈕或數據更新。
該體系結構基於三個主要組成部分:
是生成事件的系統的一部分。
事件經紀人:一個將生產者事件分發給消費者的中介。
事件發生時,將其捕獲並發送到經紀人,該經紀人將其交付給對此類事件感興趣的服務或系統。
[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