Observable в Java

Я пытаюсь понять Observer и Observable.

Вот пример, который я пытаюсь понять:

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");
        }
    }

}
  1. bag.addObserver () может быть создан только потому, что IntegerDataBag расширяет Observable ?

  2. Куда добавлен этот наблюдатель? Что и где создается?

  3. В чем разница между setChanged () и notifyObservers () ?

  4. Я не понимаю обновление метод; что означает arg ? Зачем мне проверять этот o == мешок ? Зачем мне обновлять другое наблюдаемое?

  5. Зачем мне вообще нужен этот наблюдатель?

16
задан dcharles 1 September 2011 в 17:15
поделиться