Kontrol Sistemleri ve Otomasyon
Javafx'taki Mediator Desen ile modüler bir Olay İşletim Sistemi tasarlayın
Table of Contents
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.