Table of Contents
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.