Desain technical system penanganan peristiwa modular sangat penting untuk menciptakan aplikasi JavaFX yang dapat dipertahankan dan dapat dikelola.Pola Mediator menawarkan cara yang efektif untuk mencouple komponen dan komunikasi garis aliran di antaranya. Artikel ini mengeksplorasi bagaimana menerapkan sistem penanganan peristiwa modular menggunakan pola Mediator di JavaFX.

Memahami Pola Mediator

Pola Mediator . Dia adalah pola desain perilaku yang mempromosikan coupling longgar dengan memastikan bahwa komponen berkomunikasi melalui mediator pusat daripada langsung satu sama lain.Di JavaFX, pola ini membantu mengelola interaksi kompleks antara komponen UI, membuat kode lebih mudah untuk mempertahankan dan memperpanjang.

Siar - Siar Mediator

Dimulai dengan mendefinisikan antarmuka mediator yang menyatakan metode untuk mendaftarkan komponen dan menangani peristiwa.Interface ini bertindak sebagai kontrak untuk perilaku mediator.

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

Mengimplementasi Mediator

Mediator konkret konkret mengelola komponen terdaftar dan penanganan peristiwa koordinat.Mempertahankan peta komponen dan mendefinisikan bagaimana menanggapi berbagai peristiwa.

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

Corekan UI Komponen

Komponen UI yang dikoleksi seperti tombol atau penggelungsur harus berkomunikasi dengan mediator daripada langsung satu sama lain. Setiap komponen memberi pemberitahuan mediator ketika suatu peristiwa terjadi.

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

Menyatukan Komponen dan Mediator di JavaFX

Diagram aplikasi JavaFX Anda, instantiate mediator dan komponen, mendaftarkan komponen dengan mediator, dan mengatur penanganan acara untuk memicu pemberitahuan mediator.

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

Dengan mengikuti pendekatan ini, Anda membuat sistem penanganan peristiwa yang dapat diskalakan yang menyederhanakan interaksi komponen dalam aplikasi JavaFX menggunakan pola Mediator.