在ListAdapter当中需要实现一个3个方法,baseAdapter是这样实现的
    public void registerDataSetObserver(DataSetObserver observer) {
        mDataSetObservable.registerObserver(observer);
    }
    public void unregisterDataSetObserver(DataSetObserver observer) {
        mDataSetObservable.unregisterObserver(observer);
    }    public void notifyDataSetChanged() {
        mDataSetObservable.notifyChanged();
    }
这让我们很容易联想到观察者或者叫坚挺着模式。这是一种什么模式呢:
mDataSetObservable就是一个存储所有观察者的数据集合,用于监听适配器当中数据的变化
public class DataSetObservable extends Observable<DataSetObserver>
Obeserveable是一个抽象类。
public abstract class Observable<T>
观察者观察数据的变化,来进行相应的操作,需要继承DataSetObserver类,
当数据变化的时候,这两个函数将会被调用
    public void onChanged() {
        // Do nothing
    }
    public void onInvalidated() {
        // Do nothing
    }而这实现的原理在于,DataSetObservable类当中,notifyChanged和notifyInvalidated中,调用了每一个观察者的onChange()和onInvalidated()方法。