美文网首页
观察者模式

观察者模式

作者: 萝卜_13f6 | 来源:发表于2018-07-16 09:17 被阅读0次

    1:定义

    在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。

    大白话 -> 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。

    2:结构图

    抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。

    抽象观察者角色:为所有的具体观察者定义一个接口,在得到主题通知时更新自己。

    具体被观察者角色:也就是一个具体的主题,在集体主题的内部状态改变时,所有登记过的观察者发出通知。

    具体观察者角色:实现抽象观察者角色所需要的更新接口,一边使本身的状态与制图的状态相协调

    3:jar的包

    3-1:抽象被观察者:java.util.Observable 相当于Subject。提供注册(addObserver),注销(deleteObserver)以及通知(notifyObservers) 

    3-2:抽象观察者:java.util.Observer相当于Observer。提供更新方法(update)

    4:使用场景

    有一个微信公众号服务,不定时发布一些消息,关注公众号就可以收到推送消息,取消关注就收不到推送消息。

    (广播)

    两种模式:

    堆模式:指定参数,固定使用该参数

    拉模式:传回整个对象,你自己去对象里面获取想要的值

    代码(git):

    学习视频网址:http://www.imooc.com/learn/415

    相关文章

      网友评论

          本文标题:观察者模式

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