热点资讯
【数媒在线课堂】观察者模式 (改进后的)
发布日期:2025-04-15 03:47 点击次数:200
前言
之前 观察者模式一篇 中,【通知者】需要知道【观察者】的类名和更新函数名,耦合度稍大,本篇稍稍修改一下,类似于大话设计模式里的 C# 描述的委托事件的方法。
采用 将类成员函数指针转换为普通指针 的方式,把每个【观察者】类的 相同原型的更新函数 指针转换为 std::function 然后保存起来。
然后在【通知者】的 通知函数 中调用保存起来的每个 【观察者】的更新函数。
本文去除了【观察者】的继承结构,【通知者】只需要知道每个【观察者】的更新函数原型。
去除了继承结构,因此每个【观察者】的更新函数也就不必是 virtual 的了。
发布于:湖南省
