«

Android当中的设计模式观察者模式

时间:2024-3-2 18:25     作者:韩俊     分类: Android


在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()方法。

标签: android

热门推荐