设计模式之观察者模式

是什么?

当对象之间存在一对多的关系时,一个对象发生改变通知它所依赖的对象,这种行为型模式我们称之为观察者模式。

为什么?

解决当一个对象的状态发生改变,需要通知到其他所有它所依赖的对象的问题,并且要做到易用和低耦合,并且保证高度的协作。

怎么做?

观察者模式有三个组成部分:

  1. 观察者(Observer)
  2. 被观察者(Observable)
  3. Client程序

分析: 在java的util包中已经定义了观察者Observer接口和被观察者类Observable,那么如何在Client中让观察者和被观察者关联起来,并做到被观察则发生变化时立刻通知观察者呢?具体采取的做法是:

  1. 新建观察者对象
        //新建观察者
        Observer1 observer1 = new Observer1();
        Observer2 observer2 = new Observer2();
        Observer3 observer3 = new Observer3();
复制代码
  1. 新建被观察者对象
        //新建被观察者
        Observable observable = new Observable();
复制代码
  1. 观察者订阅被观察者的状态
        //三个观察者进行观察
        observable.addObserver(observer1);
        observable.addObserver(observer2);
        observable.addObserver(observer3);
复制代码

其实在这里本质上是将观察者对象全部注入被观察者对象内,这样可以做到当被观察者对象内部有任何变化即可通知到其所持有观察者。

具体代码详见:设计模式学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值