Mga Sistema ng Pagkontrol at Automisyon
Pagdidisenyo ng Isang Modular Event Injury System na may Tagapamagitan na Disenyo sa Javafx
Table of Contents
Ang pagdisenyo ng isang modular na pangyayaring humahawak ng sistema ay mahalaga sa paglikha ng mga magagamit at naka-claimable JavaFX applications. Ang Tagapamagitan na pattern ay nagbibigay ng epektibong paraan upang i-discouple ang mga bahagi at basline communication sa pagitan nila. Ang artikulong ito ay nag-iinspruksyon kung paano ipatupad ang isang modular na pangyayari na humahawak ng sistema gamit ang Tagapamagitanng pattern sa JavaFX.
Pag - unawa sa Tagapamagitanng Halimbawa
Ang dibuhong Tagapamagitan ay isang dibuhong pang-ugali na nagtataguyod ng maluwag na koleksyon sa pamamagitan ng pagtiyak na ang mga sangkap ay nakikipagtalastasan sa pamamagitan ng isang sentral na tagapamagitan sa halip na direkta sa bawat isa. sa JavaFX, ang dibuhong ito ay tumutulong sa pag-aayos ng mga komplikadong interaksiyon sa pagitan ng mga bahagi ng UI, na ginagawang mas madaling panatilihin at palawigin ang kodigo.
Pagdidisenyo sa Tagapamagitanng Paibabawan
Magsimula sa pamamagitan ng pagbibigay - kahulugan sa isang tagapamagitan na namamagitan sa mga bagay na nagpapahayag ng mga paraan ng pagrerehistro ng mga bahagi at pangangasiwa sa mga pangyayari. Ang pagitang ito ay nagsisilbing isang kontrata sa paggawi ng tagapamagitan.
public interface EventMediator {
void registerComponent(String name, UIComponent component);
void handleEvent(String eventType, String sourceComponent);
}
Pag - aasawa sa Tagapamagitan
Ang tagapamagitang kongkreto ay namamahala ng mga rehistradong bahagi at nagtutugma ng kaganapang humahawak. Pinananatili nito ang isang mapa ng mga sangkap at binibigyang kahulugan kung paano tutugon sa iba't ibang mga pangyayari.
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);
}
}
}
Paglikha ng mga Komponente sa UI
Ang mga bahagi ng UI gaya ng butones o slipher ay dapat makipag-usap sa tagapamagitan sa halip na direkta sa bawat isa.Ang bawat isang sangkap ay nagbibigay pansin sa tagapamagitan kapag naganap ang isang pangyayari.
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);
}
}
Nakapagpapasiglang mga Komponente at Tagapamagitan sa JavaFX
Sa inyong JavaFX application, instantia ang tagapamagitan at mga bahagi, mag-rehistro ng mga sangkap sa tagapamagitan, at magtatag ng mga mandurukot ng kaganapan upang magbunsod ng mga notasyon ng tagapamagitan.
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);
}
}
Sa pagsunod sa pamamaraang ito, lumilikha ka ng isang modular, mala-scalable na pangyayaring humahawak ng sistema na nagsasanhi ng mga interaksiyong sangkap sa JavaFX applications gamit ang paraang Tagapamagitan.