zoukankan      html  css  js  c++  java
  • 设计模式:观察者模式

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

    组成:

    • 观察者,我们称它为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);
    }
  • 相关阅读:
    promise思考
    思考
    前端命名规范化
    location的属性
    underscore里面的debounce与throttle
    nginx使用
    js原形链
    JS中常遇到的浏览器兼容问题和解决方法
    用js刷题的一些坑
    从mixin到new和prototype:Javascript原型机制详解
  • 原文地址:https://www.cnblogs.com/zhaozilongcjiajia/p/11752851.html
Copyright © 2011-2022 走看看