美文网首页
观察者模式

观察者模式

作者: 柚子过来 | 来源:发表于2018-02-05 19:29 被阅读0次

作用:在对象之间定义一对多依赖,当一个对象改变时,其他依赖的对象会接收到通知并自动更新。

OO原则:

封装变化
组合优于继承
针对接口编程优于针对实现编程
松耦合设计



Example:
在Java中有内置的观察者模式,主题对象继承java.util.Observable,观察者实现java.util.Observer。但是可以发现内置的观察者模式有个问题:Observable是类而不是接口。所以使用观察者模式时可以考虑自己实现,毕竟实现起来也比较简单。需要定义的接口及方法与内置的类似。

public class Observable {
    public class Observable {
private boolean changed = false;
private Vector<Observer> obs;

public Observable() {
    obs = new Vector<>();
}
public synchronized void addObserver(Observer o) {  ... ... }
public synchronized void deleteObserver(Observer o) { ... ... }
public void notifyObservers(Object arg) {... ...}
... ...
}


 public interface Observer {
   void update(Observable o, Object arg);
}

另外,观察者获取消息的方式可以有两种:主题对象主动推送或者观察者自己拉取。像zookeeper的watcher机制和kafka的消息订阅模式都属于观察者模式,前者属于发生change时服务器主动推送通知watcher,后者属于Consumer主动从topic中poll数据。

相关文章

  • 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/kpmizxtx.html