Я работаю над реализацией шаблона Observable Design для кода, который был предоставлен для назначения. Мне не нужен весь ответ, но я хочу понять, чего не хватает. Я не буду копировать весь код, но соответствующие штуки, которые я написал до сих пор. Код - это простой графический интерфейс для банков, который позволяет нам сохранять счета сбережений и проверки в ArrayList. Мой первый шаг должен был вытащить, что из в новый объект AccountList и расширить Наблюдаемые как таковую:Наблюдаемый шаблон Реализация не вызывающий метод обновления
public class AccountList extends Observable {
public List<AAccount> accountList;
public AccountList(List<AAccount> accountList) {
this.accountList = accountList;
}
public void add(AAccount acc) {
accountList.add(acc);
hasChanged();
notifyObservers();
}
}
Мой следующий шаг должен был реализовать класс наблюдателя как таковой:
public class AccountListObserver implements Observer{
public AccountListObserver(Observable o) {
o.addObserver(this);
}
@Override
public void update(Observable o, Object arg) {
System.out.println("Account " + o + " has been added, " +
"there are now " + o + " accounts on the server.");
}
}
В настоящее время в фактическом сервере класс я следующее выкрикнул в начале:
AccountList accList = new AccountList(new ArrayList<AAccount>());
Observer accObserver = new AccountListObserver(accList);
Тогда всякий раз, когда учетная запись добавляется я звоню accList.add (соотв)
Я не получаю свой вывод, но программа работает нормально. Какую часть (я) мне не хватает, чтобы сделать этот функционал. Как только я понимаю, чего не хватает или нужно переместить/изменить, я могу внести необходимые изменения для всех функций. Я просто очень смущен тем, что может отсутствовать, потому что это похоже на логическую конфигурацию.
Заменить вызов 'hasChanged()' с помощью 'setChanged()' и попробовать. –
Вау ... Я знал, что это было просто. Огромное спасибо. –
Вы можете придать 'o'' '' 'AccountList'' в' update'. И оттуда вы можете получить объекты 'Account'. 'AccountList accList = (AccountList) o;' –