我已經實現使用JavaFX以下simplyfied結構:以下結構是否被視爲設計模式?
App.java
public void start(Stage primaryStage) {
MyConnector myconnector = new MyConnector();
LeftPane leftPane = new LeftPane(myconnector);
RightPane rightPane = new RightPane(myconnector);
}
MyConnector.java
public class MyConnector {
private Button button; // getters, setters
private Field field; // getters, setters
}
LeftPane.java
public LeftPane extends FlowPane {
private Button button; // getters, setters
private MyConnector myConnector; // in constructor, getters, setters
public LeftPane(myConnector) {
this.button = new Button();
this.myConnector = myConnector;
this.myConnector.setField(this.button); // add to the MyConnector
}
an event on action {
this.myConnector.getField().setEditable(false);
this.button.setDisable(true);
}
}
RightPane.java
public RightPane extends FlowPane {
private TextField field; // getters, setters
private MyConnector myConnector; // in constructor, getters, setters
public LeftPane(myConnector) {
this.field = new TextField();
this.myConnector = myConnector;
this.myConnector.setField(this.field); // add to the MyConnector
}
an event on action {
this.myConnector.getButton().setDisable(true);
this.field.setEditable(false);
}
}
不久它意味着,我有一個包含第一個的Button
和第二個中的TextField
兩個窗格。在某些事件觸發器上,我想一次禁用它們。此解決方案完美運作。
我想首先避免這種交叉狀的代碼,導致只有NullPointerException
:
LeftPane leftPane = new LeftPane(this.rightPane.getField());
RightPane rightPane = new RightPane(this.leftPane.getButton());
是結構上面我已經使用了正確的做法,是其公認的設計模式之一?如果是這樣,它的名字是什麼?我一直在想Adapter
或Bridge
,但我無法將我的結構重構爲其中之一。
如果我的結構根本不是設計模式,是否存在一個處理同樣的事情?還是存在更好的方法?
看起來就像物體組成,不一定模式 –
如果你通過一些解釋,比較或建議將你的評論變成一個答案,那將是可以接受的。 :)) –
雖然它可能是一種模式。 https://sourcemaking.com/design_patterns/structural_patterns –