在 Java 中可观察
2022-09-03 04:25:08
						我试图理解观察者和可观察者。
下面是一个我试图弄清楚的例子:
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- Observable
- 这个观察者被添加到哪里?正在创建什么,在哪里创建? 
- 和 有什么区别? - setChanged()- notifyObservers()
- 我不明白方法;代表什么?为什么我需要检查一下?为什么要更新另一个可观察量? - update- arg- o==bag
- 为什么我需要这个观察者呢? 
 
					 
				 
				    		 
				    		 
				    		 
				    		