طراحی یک سیستم مدیریت رویداد مدولار برای ایجاد برنامه های جاواFX قابل نگهداری و مقیاس پذیر ضروری ضروری است. الگوی Mediator یک راه موثر برای جدا کردن قطعات و ارتباطات ساده بین آنها ارائه می دهد.این مقاله بررسی می کند که چگونه یک سیستم مدیریت رویداد مدولار را با استفاده از الگوی Mediator در جاواFX پیاده سازی کنید.

درک الگوی Mediator

الگوی Mediator یک الگوی طراحی رفتاری است که باعث می شود تا اجزای آن از طریق یک واسطه مرکزی به جای ارتباط مستقیم با یکدیگر ارتباط برقرار کنند.در جاواFX، این الگو به مدیریت تعاملات پیچیده بین اجزای UI کمک می کند و باعث می شود که کد برای حفظ و گسترش آسان تر شود.

طراحی رابط Mediator

با تعریف یک رابط واسطه که روش های ثبت اجزای ثبت و رسیدگی به رویدادها را اعلام می کند، شروع کنید.این رابط به عنوان یک قرارداد برای رفتار واسطه عمل می کند.

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

پیاده سازی Mediator

واسطه بتن اجزای ثبت شده را مدیریت می کند و هماهنگی اجرای رویداد را حفظ می کند، یک نقشه از اجزای را حفظ می کند و چگونگی پاسخ به رویدادهای مختلف را تعریف می کند.

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

اجزای UI مانند دکمه ها یا اسلایدرها باید به جای ارتباط مستقیم با یکدیگر با واسطه ارتباط برقرار کنند.هر جزء زمانی که یک رویداد رخ می دهد واسطه را تأیید می کند.

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

ادغام قطعات و Mediator در JavaFX

در برنامه JavaFX خود، واسطه و اجزای آن را تنظیم کنید، اجزای را با واسطه ثبت کنید و تنظیم کنید تا کارگزار رویداد را برای اعلان های واسطه ای ایجاد کنید.

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

با دنبال کردن این رویکرد، شما یک سیستم مدیریت رویداد مدولار و مقیاس پذیر ایجاد می کنید که تعاملات جزء را در برنامه های JavaFX با استفاده از الگوی Mediator ساده می کند.