美文网首页
观察者模式

观察者模式

作者: 今夜秋风和 | 来源:发表于2020-12-21 19:08 被阅读0次

什么是观察者模式?

     定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己;

观察者模式特点以及应该何时来使用它?

当一个对象改变需要同时改变其他对象,而我们不清楚要更新多少对象状态时,可以考虑使用此模式;

另外,该模式的优点在于解除耦合,将通知者与观察者双方都依赖抽象接口,而不是真正具体的实例对象,比如: 通知者a 实例 中添加了观察者 a 实例,通知者b 实例添加了观察者b 实例,这样,在观察者 a 实例 发生变化时,只会修改自己,而不会影响到其他实例对象;

类的结构图如下:

Subject 作为通知者,定义了需要通知的接口,Observer 作为观察者,定义了当通知到来时,需要做的状态更新操作;

将上述的结构用代码的形式来描述:

通知接口定义:

具体通知者实现:

观察者接口定义:

具体观察者实现:

客户端测试:

观察者模式不足:

 以上从一个例子介绍了观察者模式的实现方式,可以看到,通知者和观察者需要提前进行绑定,对于两者提前未知的状态下,这个模式就存在了不足之处,也就是说,通知者提前若不知晓具体观察者的情况下,通知怎么才能被响应到,进而触发执行,下一次我们来分析另一种处理方式,事件委托方式;

相关文章

  • 11.9设计模式-观察者模式-详解

    设计模式-观察者模式 观察者模式详解 观察者模式在android中的实际运用 1.观察者模式详解 2.观察者模式在...

  • RxJava基础—观察者模式

    设计模式-观察者模式 观察者模式:观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式...

  • 前端面试考点之手写系列

    1、观察者模式 观察者模式(基于发布订阅模式) 有观察者,也有被观察者。 观察者需要放到被观察者列表中,被观察者的...

  • RxJava 原理篇

    一、框架思想 观察者模式观察者自下而上注入被观察者被观察者自上而下发射事件观察者模式 装饰器模式自上而下,被观察者...

  • 观察者模式

    观察者模式概念 观察者模式是对象的行为模式,又叫作发布-订阅(publish/subscrible)模式。 观察者...

  • 设计模式-观察者模式

    观察者模式介绍 观察者模式定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为...

  • 观察者模式

    观察者模式 观察者模式的定义 观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/s...

  • iOS设计模式之观察者模式

    观察者模式 1、什么是观察者模式 观察者模式有时又被称为发布(publish)-订阅(Subscribe)模式、模...

  • 观察者模式和发布订阅模式区别

    观察者模式 所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。 在观察者模式中,观察者需要...

  • RxJava(二)

    一、观察者模式 1.1、传统的观察者模式 1.2、RxJava 的观察者模式 区别传统的观察者模式是一个 Obse...

网友评论

      本文标题:观察者模式

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