美文网首页Android设计模式
Observer 观察者模式

Observer 观察者模式

作者: Charles1993 | 来源:发表于2019-12-07 19:43 被阅读0次

设计原则学习笔记
设计模式学习笔记

作用

使数据结构的变换可以从数据结构主动通知到观察者处。同时方便观察者和被观察者扩展。

类图

观察者模式

Java实现

// 定义观察者接口
public interface Observer {
    void update();
}
// 实现观察者接口
public class ConcreteObserver implements Observer {
    @Override
    public void update() {

    }
}
// 定义被观察者接口
public abstract class Subject {
    List<Observer> list = new LinkedList<>();
    public void attach(Observer observer) {
        list.add(observer);
    }
    public void detach(Observer observer) {
        list.remove(observer);
    }
    protected void notifyObserver() {
        for (Observer observer : list) {
            observer.update();
        }
    }
}
// 实现被观察者,在数据变化时调用notify方法通知到观察者
public class ConcreteSubject extends Subject {
    private int state;

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
        notifyObserver();
    }
}
// 客户端绑定观察者与被观察者
public class Client {
    public static void main(String[] args) {
        ConcreteSubject subject = new ConcreteSubject();
        Observer observer = new ConcreteObserver();
        subject.attach(observer);
        subject.setState(1);
        subject.detach(observer);
    }
}

观察者模式分为推模型和拉模型,推模型在通知的时候主动将数据推给观察者,拉模型则只通知观察者发生了变换,具体数据需要单独再获取。

Android源码中的应用

  • ContentObserver
  • BroacastRecivier

相关文章

  • Android 开发--观察者模式

    观察者 模式 有两个 角色,观察者observer ,被观察者observable。 Observer 是个接口,...

  • 设计模式之观察者模式

    观察者模式 Observer Intro 观察者模式又叫做 发布订阅(Publish/Subscribe)模式,观...

  • 行为型模式——观察者模式

    观察者模式定义 观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象...

  • c++观察者模式

    1.观察者模式简介    观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe)...

  • 面試小記

    1:设计模式 观察者模式observer observerble,subscribe (订阅) (1)观察者对象 ...

  • 观察者模式

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

  • 设计模式之观察者模式

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

  • JS观察者模式简介及实例

    一、概念观察者(observer)模式:又称订阅/发布(subscriber/publisher)模式,被观察者(...

  • 行为型设计模式总结

    观察者模式 Observer模式作用是当一个对象发生变化时,能够自动通知它的观察者刷新状态。Observer模式提...

  • 设计模式——观察者模式

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

网友评论

    本文标题:Observer 观察者模式

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