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);
    }
  • 相关阅读:
    django中使用celery
    django中使用Redis
    Nginx编译和安装(超简单版)
    cookie和session
    forms组件
    反向解析(reverse())
    QuerySet对象
    models.py里的字段以及参数详解
    Q查询和F查询
    JgrId 无数据返回设置
  • 原文地址:https://www.cnblogs.com/zhaozilongcjiajia/p/11752851.html
Copyright © 2011-2022 走看看