在java swing項目中,我有一個模型類來保存某個JPanel的狀態。我需要將這些數據提供給視圖。 我看到它有兩個選項。有一個擴展Observable的類,並將模型作爲實例變量。請參閱下面的代碼示例。或者讓模型類擴展Observable本身。如果模型類擴展了Observable,或者它應該是類中的一個變量,它擴展了Observable Observable
public class BoardObservable extends Observable {
private Board board;
public Board getBoardText() {
return board;
}
public void setBoardText(Board board) {
this.board = board;
setChanged();
notifyObservers(board);
}
}
因此,在實現Observer的視圖類中,它將使用Observable參數或Object參數來填充JPanel。
@Override
public void update(Observable o, Object arg) {
if(o instanceof BoardObservable) {
this.board = (Board) arg;
}
}
哪一個是最好的選擇?