В проекте java swing у меня есть модельный класс, который содержит состояние определенного JPanel. Мне нужно сделать эти данные доступными для представления. Есть два варианта, как я его вижу. Имейте класс, который расширяет 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);
}
}
Таким образом, в классе представления, реализующего наблюдатель будет использовать либо Observable параметр или параметр объекта для заполнения в JPanel.
@Override
public void update(Observable o, Object arg) {
if(o instanceof BoardObservable) {
this.board = (Board) arg;
}
}
Какой из лучших вариантов?