【青鸟飞扬教育】观察者模式

适用于一个变化会引起其他多个变化

引起变化的叫【通知者】,被引起变化的叫【观察者】。

从代码实现角度讲,【抽象通知者】需要依赖于【抽象观察者】,至少需要知道抽象观察者的类名和一个【更新函数】名。

这个模式的一般实现有点违反【面向接口编程,不要面向实现编程】,而且观察者的更新函数是同一个抽象基类的虚函数,其函数名相同 (功能也是类似的功能),而不是每个观察者有不同的动作 (即不必都是相同的【更新函数】)。

C# 为了解决此问题,使用了在【观察者】中不用继承结构,使用委托和事件来实现,即不同的观察者中的【更新函数】各自不同,而使用委托和事件,

(不同具体观察者的同原型的更新函数)

在 C++ 中在解决这个问题呢? 需要解决一个问题 (没有继承结构的前提下):C# 中的委托类似于 C++ 中的函数指针,而 C++ 中的类成员函数指针在不同类之间的转换有问题? 点解决?

发布于:湖南省