• 设计模式:观察者模式


    定义对象间的一种一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都能得到通知并被自动更新

    组成:

    • 观察者,我们称它为Observer,有时候我们也称它为订阅者,即Subscriber
    • 被观察者,我们称它为Observable,即可以被观察的东西,有时候还会称之为主题,即Subject

    例子:

    被观察者:

    public class Observable<T> {
        List<Observer<T>> mObservers = new ArrayList<Observer<T>>();
    
        public void register(Observer<T> observer) {
            if (observer == null) {
                throw new NullPointerException("observer == null");
            }
            synchronized (this) {
                if (!mObservers.contains(observer))
                    mObservers.add(observer);
            }
        }
    
        public synchronized void unregister(Observer<T> observer) {
            mObservers.remove(observer);
        }
    
        public void notifyObservers(T data) {
            for (Observer<T> observer : mObservers) {
                observer.onUpdate(this, data);
            }
        }
    
    }

    观察者:

    public interface Observer<T> {
        void onUpdate(Observable<T> observable,T data);
    }
  • 相关阅读:
    防抖、节流函数
    vue如何监听数组的变化
    scss的循环和数组
    linux更新node版本
    函数节流和防抖函数
    vue-cli 使用,更新
    webstorm自动编译scss
    git冲突的处理
    linuix 安装 mysql8
    脚本安装mysql 8
  • 原文地址:https://www.cnblogs.com/zhaozilongcjiajia/p/11752851.html
Copyright © 2020-2023  润新知