观察者模式

观察者模式

使用场景

存在一个信息提供方(出版者),多个信息获取方(订阅者),获取方需要实时获取提供方的消息,并且能第一时间得到消息更新通知。

设计思想

消息获取方需要在出版者一方进行注册,成为订阅者,每当出版者的信息更新时,出版者会向自己所有的订阅者发出通知。

当订阅者不想接受消息时,取消在出版者方的订阅。

因为代码太多, 所以下面的例子都以伪代码实现

interface Object {
    //注册订阅者
    void register()
    //移除订阅者
    void remove()
    //通知订阅者
    void notify()
}

interface Observer {
    //更新消息
    void update()
}

上述是一个观察者模式的简单示例,同时在Java也内置了观察者模式的接口,具体如下:

//出版者(可被观察者)(class)
//需要注意的是Observable是一个类而不是一个接口
java.util.Observable
//订阅者(观察者)(interface)
java.util.Observer
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.初识观察者模式 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被...
    王侦阅读 1,149评论 0赞 1
  • 【学习难度:★★★☆☆,使用频率:★★★★★】直接出处:观察者模式梳理和学习:https://github.com...
    BruceOuyang阅读 1,737评论 1赞 5
  • 什么是观察者模式?我们先打个比方,这就像你订报纸。比如你想知道美国最近放生了些新闻,你可能会订阅一份美国周刊,然后...
    泥孩儿0107阅读 822评论 0赞 0
  • 观察者模式 观察者模式是这样一种设计模式。一个被称作被观察者的对象,维护一组被称为观察者的对象,这些对象依赖于被观...
    伯纳乌的追风少年阅读 344评论 0赞 1
  • 会考前夕,父母工作繁忙。为了不让我因做饭浪费学习时间,奶奶每天晚上都会来为我送上可口的晚饭,为我带来快乐。在无趣的...
    凭海琳风阅读 665评论 1赞 0

友情链接更多精彩内容