【设计模式】 观察者模式

设计模式:

观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互、权限管理等方面也有广泛的应用。
观察者模式(Observer)完美的将观察者和被观察的对象分离开。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。
观察者设计模式定义了对象间的一种一对多的组合关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。

模式原理:

 ---------------------        ---------------------
|       Subject     |<>------|      Observer     |
 ---------------------        ---------------------
| + 添加(observer) |        | + 更新()        |
| + 删除(observer) |        ---------------------
| + 通知()         |
 ---------------------
这里的Subject对象 即被观察者。
它拥有一个List<Observe>属性
他会往自身的观察者集合当中添加删除观察者。
这里的Observe对象 即观察者。
它拥有一个方法是接收通知
在接受通知方法被调用后他实现自身的逻辑
#### 被观察者如何通知到这个观察者呢
他的通知方法应该是这样的

通知(){
List<Observer>.foreach(o->{
	o.更新()
})
}

这样便实现了观察被观察

具体应用场景:

android组件 广播 原理就是观察着模式


被观察的操作可以带动 观察者进行操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值