适用于一个变化会引起其他多个变化
引起变化的叫【通知者】,被引起变化的叫【观察者】。
从代码实现角度讲,【抽象通知者】需要依赖于【抽象观察者】,至少需要知道抽象观察者的类名和一个【更新函数】名。
这个模式的一般实现有点违反【面向接口编程,不要面向实现编程】,而且观察者的更新函数是同一个抽象基类的虚函数,其函数名相同 (功能也是类似的功能),而不是每个观察者有不同的动作 (即不必都是相同的【更新函数】)。
C# 为了解决此问题,使用了在【观察者】中不用继承结构,使用委托和事件来实现,即不同的观察者中的【更新函数】各自不同,而使用委托和事件,
(不同具体观察者的同原型的更新函数)
在 C++ 中在解决这个问题呢? 需要解决一个问题 (没有继承结构的前提下):C# 中的委托类似于 C++ 中的函数指针,而 C++ 中的类成员函数指针在不同类之间的转换有问题? 点解决?
发布于:湖南省