【RecyclerView】RecyclerView之Adapter

概述    

    说起Adapter,网上一堆文章,讲得很详细,这篇文章就来记录一下Adapter里的观察者设计模式。

RecyclerViewDataObserver(观察adapter的变化)

    观察者,继承抽象类AdapterDataObserver。adapter变了,观察者就要做出对策。那么怎么知道adapter变化了?

AdapterDataObserverable(通知观察者adapter变化了)

    被观察者,继承了抽象类Observerable<T>。进入抽象类,看到ArrayList<T> observers,还有三个方法:注册观察者,解注册观察者,解注册所有观察者。注册观察者的时候,observers.add(T),可知,被观察者和观察者是一对一或者一对多的关系。

Adater中的观察者模式细节

    先来看观察者,既然它是观察Adapter变化的,那么Adapter中的notify相关方法,应该对应着观察者AdapterDataObserver的方法,进入AdapterDataObserver,发现了6种方法,且在adapter的notify...调用了。

    Adapter里的调用过程:①在Adapter里调用AdapterDataObserverable的注册方法,将观察者注册进来。②当Adapter调用notify...方法时,调用被观察者的notify...方法。③此时注意,在步骤一,被我们注入的观察者,得知adapter变化了,开始各种增、删、改。

    PS:被观察者在seteAdapter的时候,如果存在Adapter,先解注册观察者,然后再注册。

    回头再看观察者,他的作用就是等,等着接收被观察者的通知,接到通知之后,做出相关逻辑处理。

Adapter为什么用观察者模式

    如果不用观察者模式,会造成什么恶劣影响。RecyclerView这个UI具有易变性,增删改操作频繁,如果不用观察者模式解耦,就会导致,每次UI改变,都要进行一波更新,那么逻辑写在了UI层,就是一种视觉上的“垃圾盛宴”,所以,为什么用观察者,不言而喻。

猜你喜欢

转载自blog.csdn.net/qq_29266921/article/details/80630432