【发布时间】:2010-07-27 07:55:07
【问题描述】:
我想实现观察者模式,我想让 X 类观察 A 类和 B 类的更新。
X 派生自抽象基类 XObs,它的 update() 函数将枚举作为所发生事件的参数。
这里的逻辑问题是 X 需要知道 A 和 B 中的哪一个发送了更新,而 X 无法从 enum 参数中确定。
在 update() 中添加另一个参数来告诉 A 和 B 中的哪一个发送了更新有什么优点/缺点?还有什么其他方法可以解决这个问题? (我宁愿不为 A 和 B 创建基类并在 update() 中发送 this 指针,因为 A 和 B 完全不同。)
谢谢,
托马斯
【问题讨论】:
-
为什么不使用 boost.signals?这是一个已解决的问题
-
我不能在我目前工作的环境中使用 boost。不是我的选择。
标签: c++ oop observer-pattern