观察者模式
概念简介
观察者模式又叫发布-订阅模式,也就是信息监听机制。当有多个观察者监听一个主题信息,当主题信息发生改变时,观察者们会相应调整自身。
为何而生
一对多关联关系的实时更新,一个软件系统常常要求在某一个对象状态发生变化时,某些其他的对象作出相应的改变。观察者模式便是为了解决这一问题。
观察者模式结构
1.抽象主题角色
通常由接口或者抽象类实现 包含观察者的增删接口以及通知所有观察者的接口;
2.具体主题角色
实现抽象主题的观察者的增删接口以及通知所有观察者的接口,还包含储存该主题所有观察者的list
3.抽象观察者角色
包含收到通知时具体观察者需要执行的接口
4具体观察者橘色
包含收到更新时,观察者需要实现的行为
观察者模式代码示例
1.抽象主题角色
2.具体主题角色
3.抽象观察者角色
4.具体观察者角色
调用
观察者模式的两种模型
1.推模型
如上面代码示例,就是推模型。不论观察者是否需要,推送给观察者的信息是全部或者大部分数据。
2.拉模型
主题对象在通知观察者时,只传递少量数据。如果观察者需要更具体信息,由观察者主动到主题对象中拉取数据。