共计 1305 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 观察者模式是极其重要的一个设计模式,也是我几年开发过程中使用最多的设计模式,本文首先概述观察者模式的基本概念和 Demo 实现,接着是观察者模式在 C ++ 中的应用,最后是对观察者模式的应用场景和优缺点进行总结 |
用来解决两个不相关对象之间的一对一或者一对多的通信模型。
什么是观察者设计模式
观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接受通知。观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互、权限管理等方面也有广泛的应用。
解决的问题
定义了对象间的一种一对多的组合关系,以便一个对象的状态发生时,所有依赖于它的对象都得到通知并自动刷新。
观察者和被观察者之间存在“观察”的逻辑关系,当被观察者发生变化时,观察者就会观察到这样的变化,并作出相应的响应。
编程思路
设定两者类,一个为观察者类,一个为被观察者类
观察者类中,定义一个对某个事件感兴趣的处理函数,一般也叫做槽函数
被观察者类中,定义一个数据结构,用来保存观察者对某一个事件 id(信号)感兴趣,使用数据结构建立信号与对象之间的映射关系
被观察者类中,定义两个方法函数:
一个方法为:添加观察者与其感兴趣的事件 id(信号)加入到容器中
另一个方法为:信号函数:通知事件函数执行逻辑:首先遍历容器中,有没有感兴趣的事件 ID,如果有,则代表一系列的观察者,对这个事件感兴趣,那么再次遍历观察者列表,让每一个观察者执行相应的槽函数
#include
#include
知识小百科
this 指针:
作用:
到此这篇关于 C ++ 示例讲解观察者设计模式的文章就介绍到这了
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)