android 设计模式篇 之 观察者模式

2019-12-17  本文已影响0人  treasure_ct
注:转载请注明出处,请珍惜成果    https://blog.csdn.net/treasureqian/article/details/103579463

1.简介

        观察者模式软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。

        在此模式下,一个对象(被观察者)可以管理一大批观察者对象,并且在自己的状态发生变化时,通过接口通知观察者们,而观察者们接到通知后,可以分别作出相应的动作。优点是:观察者与被观察者之间不会产生直接耦合,但它们是抽象耦合的(通过接口),观察者模式又被称作发布/订阅模式。



2.UML图

3.简单实例代码

    分为Student和Teacher类,分别代表观察者和被观察者,老师布置作业

二者相互调用


4.观察者模式在RecyclerView中的调用

RecyclerView的Adpter.notifyDataSetChanged为什么能刷新界面?

RecyclerView的观察者,在哪里被注册和注销的呢?

用到RecyclerView,其实对我们来讲最能够接触的的是Adapter

Adapter里的 notifyDataSetChanged()

主动去调用被观察者的 notifyChange  从而引起观察者的改变

AdapterDataObservable

从一个list里逐一去调用onChange方法,这也就是为啥提倡使用notifyByPosition(int position)

AdapterDataObserver 

实现类 RecyclerViewDataObserver

重点就是这个requestLayout   顾名思义就是重新布局   具体看自定义View

大概就是这个样子,简单易读。

上一篇 下一篇

猜你喜欢

热点阅读