מערכות בקרה ואוטומציה
עיצוב מערכת מודולרית משנה עם דפוס Mediator ב Javafx
Table of Contents
תכנון מערכת טיפול אירוע מודולרי חיוני ליצירת יישומים גמישים והיקף JavaFX.תבנית Mediator מציעה דרך יעילה לפירוק רכיבים ותקשורת הזרימה ביניהם. מאמר זה חוקר כיצד ליישם מערכת טיפול אירוע מודולרי באמצעות תבנית Mediator ב JavaFX.
הבנת תבנית Mediator
תבנית Mediator היא דפוס עיצוב התנהגותי המקדמת הפיכה חופשית על ידי הבטחת כי רכיבים מתקשרים באמצעות מתווך מרכזי ולא ישירות אחד עם השני. ב- JavaFX, דפוס זה עוזר לנהל אינטראקציות מורכבות בין רכיבי UI, מה שהופך את הקוד לקל יותר לשמור ולהרחיב.
עיצוב ה- Mediator Interface
התחל על ידי הגדרת ממשק מתווך המכריז על שיטות לרישום רכיבים והתמודדות אירועים.ממשק זה פועל כחוזה להתנהגותו של המתווך.
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 Components
רכיבים כגון כפתורים או שקופיות צריכים לתקשר עם המתווך במקום ישירות אחד עם השני.כל רכיב מציין את המתווך כאשר אירוע מתרחש.
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
ביישום 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.