Observables en Java

J'essaie de comprendre l'Observateur et l'Observable.

Voici un exemple que j'essaie de comprendre:

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. La bag.addObserver() peuvent être effectuées uniquement parce que IntegerDataBag s'étend Observable?
  2. Où est cet observateur être ajouter? Ce qui est créé et où?
  3. Quelle est la différence entre setChanged() et notifyObservers()?
  4. Je ne comprends pas le update méthode; ce qui ne arg? Pourquoi ai-je besoin de vérifier que o==bag? Pourquoi aurais-je mettre à jour un autre observable?
  5. Pourquoi j'ai besoin de cet observateur de toute façon?
C'est l'un des rares modèles qui ne peut être mieux compris si l'on vous vient à point à vous vraiment faut l'utiliser dans votre projet.
Comme dans MVC par exemple. Donner ce code d'essayer: emilmont.net/...

OriginalL'auteur Numerator | 2011-09-01