文章目录
Java中的设计模式 - 观察者模式【又叫:发布/订阅模式】
1、观察者模式是为了解决什么问题
当我们在定义对象间的一种一对多的依赖关系,一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。
一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。所以使用观察者模式
2、核心逻辑
在抽象类中有一个注册观察者的List 对象
3、优点
1、观察者与被观察者是抽象耦合的
2、存在触发机制
4、缺点
1、如果某个被观察对象,拥有很多的观察者,则全部通知到会花费较多的时间
2、观察者与被观察者之间有可能存在循环依赖,导致系统宕机
3、观察者对于被观察者来说,是一个相对的黑箱,观察者只知道结果是这样,但是并不知道究竟是怎么变成这样的。
5、应用场景
1、发布/订阅
2、一个对象的状态变更,会影响到与他关联的对象
3、链式传递,一个对象的变更,会影响到与他关联的对象,而这个状态导致的关联变更,又会影响到关