美文网首页
android 设计模式篇 之 观察者模式

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

作者: treasure_ct | 来源:发表于2019-12-17 15:03 被阅读0次
    注:转载请注明出处,请珍惜成果    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

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

    相关文章

      网友评论

          本文标题:android 设计模式篇 之 观察者模式

          本文链接:https://www.haomeiwen.com/subject/wdbsnctx.html