modüler bir olay işleme sistemi tasarlamak, uygulanabilir ve ölçeklenebilir JavaFX uygulamaları oluşturmak için gereklidir. Medyacı desenleri ve aralarında iletişim kurmanın etkili bir yolunu sunar. Bu makale, JavaFX'daki Mediator modelini kullanarak bir olay işleme sistemini nasıl uygulayacağınızı araştırıyor.

Medyacı Deseni Anlamak

Mediator modeli, her biri ile doğrudan bir merkez arabulucu aracılığıyla iletişim kurmasını sağlayarak gevşek darbe teşvik eden bir davranış tasarım modelidir. JavaFX'da bu model, UI bileşenleri arasındaki karmaşık etkileşimleri yönetmeye yardımcı olur ve genişletmek için kodu daha kolay hale getirir.

Mediator Interface'ı tasarlayın

Yapı elemanları kayıt etmek ve olayları işlemek için yöntemleri söyleyen bir arabulucu arayüzü tanımlamakla başlayın.Bu arayüz, arabulucunun davranışı için bir sözleşme olarak hareket eder.

public interface EventMediator {
 void registerComponent(String name, UIComponent component);
 void handleEvent(String eventType, String sourceComponent);
}

Medyacıyı uygulama

Beton arabulucusu kayıtlı bileşenleri yönetiyor ve olay işlemesini koordine ediyor. Bir dizi bileşeni koruyor ve çeşitli olaylara nasıl cevap vereceğini tanımlar.

public class ConcreteEventMediator implements EventMediator {
 private Map<String, UIComponent> components = new HashMap<>();

 @Override
 public void registerComponent(String name, UIComponent component) {
 components.put(name, component);
 }

 @Override
 public void handleEvent(String eventType, String sourceComponent) {
 // Example: handle button click
 if ("buttonClick".equals(eventType)) {
 UIComponent component = components.get(sourceComponent);
 // Perform actions based on the source component
 System.out.println(sourceComponent + " triggered a " + eventType);
 }
 }
}

UI Bileşenler Oluşturma

Düğmeler veya slaytçılar gibi UI bileşenleri doğrudan birbirleriyle iletişim kurmalı. Her bir olay gerçekleştiğinde medyatorunu belirtmemelidir.

public interface UIComponent {
 void setMediator(EventMediator mediator);
 void triggerEvent(String eventType);
}

public class ButtonComponent implements UIComponent {
 private EventMediator mediator;
 private String name;

 public ButtonComponent(String name) {
 this.name = name;
 }

 @Override
 public void setMediator(EventMediator mediator) {
 this.mediator = mediator;
 }

 @Override
 public void triggerEvent(String eventType) {
 mediator.handleEvent(eventType, name);
 }
}

JavaFX'da Bileşenleri ve Medyacı

JavaFX uygulamasında, arabulucu ve bileşenleri anında, arabulucu ile bileşenleri kayıt edin ve medyator bildirimlerini tetiklemek için olay eller oluşturun.

public class MainApp extends Application {
 @Override
 public void start(Stage primaryStage) {
 ConcreteEventMediator mediator = new ConcreteEventMediator();

 ButtonComponent button1 = new ButtonComponent("Button1");
 ButtonComponent button2 = new ButtonComponent("Button2");

 button1.setMediator(mediator);
 button2.setMediator(mediator);

 mediator.registerComponent("Button1", button1);
 mediator.registerComponent("Button2", button2);

 Button javafxButton1 = new Button("Button 1");
 javafxButton1.setOnAction(e -> button1.triggerEvent("buttonClick"));

 Button javafxButton2 = new Button("Button 2");
 javafxButton2.setOnAction(e -> button2.triggerEvent("buttonClick"));

 VBox vbox = new VBox(10, javafxButton1, javafxButton2);
 Scene scene = new Scene(vbox, 300, 200);
 primaryStage.setScene(scene);
 primaryStage.setTitle("Mediator Pattern in JavaFX");
 primaryStage.show();
 }

 public static void main(String[] args) {
 launch(args);
 }
}

Bu yaklaşımı takip ederek, Mediator modelini kullanarak JavaFX uygulamalarında bileşenlerini basitleştiren modüler, ölçeklenebilir bir etkinlik işleme sistemi yaratırsınız.