Я пытаюсь понять Наблюдателя и Наблюдаемого.
Вот пример, который я пытаюсь выяснить:
public class IntegerDataBag extends Observable implements Iterable<Integer> {
private ArrayList<Integer> list= new ArrayList<Integer>();
public void add(Integer i){
list.add(i);
setChanged();
notifyObservers();
}
public Iterator<Integer> iterator(){
return list.iterator();
}
public Integer remove (int index){
if (index< list.size()){
Integer i = list.remove(index);
setChanged();
notifyObservers();
return i;
}
return null;
}
}
public class IntegerAdder implements Observer {
private IntegerDataBag bag;
public IntegerAdder(IntegerDataBag bag) {
this.bag = bag;
bag.addObserver(this);
}
public void update(Observable o, Object arg) {
if (o == bag) {
System.out.println("The contents of the IntegerDataBag have changed");
}
}
}
-
bag.addObserver()
можно сделать только потому, чтоIntegerDataBag
extendsObservable
? -
Где этот наблюдатель добавляется? Что создается и где?
-
В чем разница между
setChanged()
иnotifyObservers()
? -
Я не понимаю метод
update
; что означаетarg
? Почему мне нужно проверить, чтоo==bag
? Почему я должен обновить еще один наблюдаемый? -
Зачем мне нужен этот наблюдатель?