Я пытаюсь разработать приложение, в котором люди будут получать уведомления о любых изменениях в PartNumber. Это приложение на основе Spring. Ниже приведен фрагмент кода.
Я абстрагировал механизм хранения здесь, в SaveSubscriptionIF
. Фактические детали хранения и извлечения находятся в классе реализации этого интерфейса. Класс реализации будет внедрен Spring.
Внешнее приложение вызывает мой метод setState()
, передавая новую информацию.
Метод store.getObservers()
возвращает мне Map
, у которого есть Наблюдатели и соответствующая информация для обновления.
Пока все хорошо. Я поражен в реализации части store.getObservers()
. Для реализации этого метода нужны данные state
- т.е. новая информация, переданная из внешнего приложения.
Как передать данные 'state' в класс реализации 'SaveSubscriptionIF' ??
public class PartNumberSubject implements Observable {
private SaveSubscriptionIF store;
private Object state;
@Override
public void addObserver(final ObserverIF o, final Object subscriptionDetails) {
store.addObserver(o, subscriptionDetails);
}
@Override
public void notifyObservers() {
@SuppressWarnings("unchecked")
final Map<ObserverIF, List<PartInformationVO>> observers =(Map<ObserverIF,List<PartInformationVO>>) store .getObservers();
for (final Entry<ObserverIF, List<PartInformationVO>> observer : observers
.entrySet()) {
observer.getKey().update(observer.getValue());
}
}
@Override
public void setState(final Object state) {
this.state = state;
notifyObservers();
}
}