Thiết kế một hệ thống xử lý sự kiện mô- đun là thiết yếu để tạo các ứng dụng JavaFX bảo trì và có thể mở rộng. Mô hình Trung lập cung cấp một cách hiệu quả để giải quyết các thành phần và đường dẫn giao tiếp giữa chúng. Bài này khám phá cách thực hiện một sự kiện mô- đun xử lý hệ thống bằng mẫu trình điều khiển JavaFX.

Hiểu gương trung thực

Mô hình Trung Bảo là mô hình thiết kế hành vi giúp tạo ra sự kết nối lỏng lẻo bằng cách đảm bảo rằng các thành phần giao tiếp qua trung tâm thay vì trực tiếp với nhau. Trong JavaFX, mô hình này giúp quản lý các tương tác phức tạp giữa các thành phần UI, làm cho mã dễ dàng hơn để duy trì và mở rộng.

Thiết kế giao diện Trung thực

Bắt đầu bằng cách xác định giao diện người điều khiển, phát hành phương pháp đăng ký thành phần và xử lý sự kiện. Giao diện này hoạt động như một giao diện cho hành vi của người điều khiển.

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

Làm vui lòng Đấng Trung Bảo

Người trung gian bê tông quản lý các thành phần đã đăng ký và sự kiện tọa độ. Nó duy trì bản đồ các thành phần và định nghĩa cách phản ứng với nhiều sự kiện khác nhau.

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

Tạo thành phần UI

Các thành phần như nút hoặc con trượt nên liên lạc trực tiếp với người trung gian thay vì trực tiếp với nhau.

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

Thành phần và Trung gian trong JavaFX

Trong ứng dụng JavaFX của bạn, ngay lập tức các thành phần và trung gian, đăng ký các thành phần với người trung gian, và thiết lập bộ quản lý sự kiện để kích hoạt thông báo người điều khiển.

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

Bằng cách theo cách tiếp cận này, bạn tạo ra một hệ thống điều khiển sự kiện đa chiều, có thể mở rộng mà đơn giản hóa các ứng dụng thành phần trong JavaFX bằng cách sử dụng mẫu trình điều khiển.