美文网首页
(十七)观察者模式

(十七)观察者模式

作者: feiry | 来源:发表于2019-09-29 21:09 被阅读0次

水果已经卖完了,顾客不知道什么时候到货,又不可能天天过来看一下有没有到货,这就需要水果店这边通知顾客


image.png

观察者模式

image.png

可以看到观察者模式中,需要添加观察你的对象或者删除观察你的对象,这就需要一个容器,然后每当被观察者发生变化时,需要遍历通知容器中的所有观察者。

//被观察者
public abstract class Observable{
    //关注客户列表
    protected List<Observer> observers = new ArrayList();

    //关注顾客
    public void add(Observer observer) {
        observers.add(observer);
    }

    //取消关注
    public void remove(Observer observer) {
        observers.remove(observer);
    }

    //发通知
    public abstract void notifyObservers();
}
//观察者
public interface Observer {
    void update();
}
public class MangoAttention extends Attentions{
    @Override
    public void notifyObservers() {
        //遍历观察者集合,调用每一个顾客的购买方法
        for(Observer obs : observers) {
            obs.update();
        }
    }
}

public class CustomerObserver implements Observer {
    private String name;
    public CustomerObserver(String name){
        this.name = name;
    }
    @Override
    public void update() {
        System.out.println(name + "购买青芒");
    }
}
/**
 * 观察者模式
 * 顾客关注了芒果,降价时通知他们
 */
public class ObserverClient {
    public static void main(String[] args) {
        MangoAttention attentions = new MangoAttention();//目标
        attentions.add(new CustomerObserver("1"));
        attentions.add(new CustomerObserver("2"));
        attentions.add(new CustomerObserver("3"));
        attentions.add(new CustomerObserver("4"));
        //到货
        attentions.notifyObservers();
    }
}

总结

  • 观察者模式是非常常用的模式,将客户端请求服务端的方式反转为服务端通知客户端,这样做可以很好的解耦,而且不需要客户端时时刻刻去关注服务端,在消息通知中很常用

相关文章

  • 11.9设计模式-观察者模式-详解

    设计模式-观察者模式 观察者模式详解 观察者模式在android中的实际运用 1.观察者模式详解 2.观察者模式在...

  • (十七)观察者模式

    水果已经卖完了,顾客不知道什么时候到货,又不可能天天过来看一下有没有到货,这就需要水果店这边通知顾客 观察者模式 ...

  • RxJava基础—观察者模式

    设计模式-观察者模式 观察者模式:观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式...

  • 前端面试考点之手写系列

    1、观察者模式 观察者模式(基于发布订阅模式) 有观察者,也有被观察者。 观察者需要放到被观察者列表中,被观察者的...

  • 设计模式-观察者模式(十七)

    观察者(Observer)模式,又叫 发布-订阅(Publish/Subscribe)模式,模型-视图(Model...

  • RxJava 原理篇

    一、框架思想 观察者模式观察者自下而上注入被观察者被观察者自上而下发射事件观察者模式 装饰器模式自上而下,被观察者...

  • 观察者模式

    观察者模式概念 观察者模式是对象的行为模式,又叫作发布-订阅(publish/subscrible)模式。 观察者...

  • 设计模式-观察者模式

    观察者模式介绍 观察者模式定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为...

  • 观察者模式

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

  • iOS设计模式之观察者模式

    观察者模式 1、什么是观察者模式 观察者模式有时又被称为发布(publish)-订阅(Subscribe)模式、模...

网友评论

      本文标题:(十七)观察者模式

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