1.什么是观察模式
观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
观察者模式又叫发布-订阅(Publish/Subscribe)模式,发布者负责发布消息,订阅负责消费消息。
2.什么时候使用观察模式
当一个对象发生改变,同时其他对象也要跟着变化的时候可以考虑观察模式对系统进行解耦。
3.例子
微信公众号的关注订阅号接收消息推送与我们的观察者模式相似,公众号作为发布者负责发布内容,关注者作为订阅者负责消费内容。
4.例子代码
/**
* @Description 主题 公众号
* @Version 1.0.0
* @Date 2022/10/13 22:21
* @Author NiKaBoy
* @Email [email protected]
*/
public interface Subject {
/**
* @Description: 添加观察者(订阅者)到队列的方法
* @Data:[observer]
* @return: void
* @Author: NiKaBoy
* @Email: [email protected]
* @Date: 22-10-286 22:24:02
*/
void addToQueue(Observer observer);
/**
* @Description: 从队列移除
* @Data:[observer]
* @return: void
* @Author: NiKaBoy
* @Email: [email protected]
* @Date: 22-10-286 22:25:33
*/
void removeBeQueue(Observer observer);
/**
* @Description: 通知 观察者 发布消息
* @Data:[]
* @return: void
* @Author: NiKaBoy
* @Email: [email protected]
* @Date: 22-10-286 22:26:58
*/
void notifyObserver();
}
/**
* @Description 订阅者
* @Version 1.0.0
* @Date 2022/10/13 22:22
* @Author NiKaBoy
* @Email [email protected]
*/
public interface Observer {
/**
* @Description: 通知,获取关注的公众号发布的消息
* @Data:[]
* @r