Java设计模式:观察者模式(行为型)

观察者模式

概念简介

观察者模式又叫发布-订阅模式,也就是信息监听机制。当有多个观察者监听一个主题信息,当主题信息发生改变时,观察者们会相应调整自身。

为何而生

一对多关联关系的实时更新,一个软件系统常常要求在某一个对象状态发生变化时,某些其他的对象作出相应的改变。观察者模式便是为了解决这一问题。

观察者模式结构

1.抽象主题角色

通常由接口或者抽象类实现 包含观察者的增删接口以及通知所有观察者的接口;

2.具体主题角色

实现抽象主题的观察者的增删接口以及通知所有观察者的接口,还包含储存该主题所有观察者的list

3.抽象观察者角色

包含收到通知时具体观察者需要执行的接口

4具体观察者橘色

包含收到更新时,观察者需要实现的行为

观察者模式代码示例

1.抽象主题角色

2.具体主题角色

3.抽象观察者角色

4.具体观察者角色

调用

观察者模式的两种模型

1.推模型

如上面代码示例,就是推模型。不论观察者是否需要,推送给观察者的信息是全部或者大部分数据。

2.拉模型

主题对象在通知观察者时,只传递少量数据。如果观察者需要更具体信息,由观察者主动到主题对象中拉取数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。