![]() |
1
1
具有
|
![]() |
2
2
为什么不直接做:
?
|
![]() |
3
1
你查过了吗助推。信号?总比重装轮子好。 至于参数:从概念上来说,调用一个观察者/槽应该和调用一个普通函数一样。大多数SignalSlots实现都允许多个参数,所以请使用它。请为不同的观察者类型使用不同的信号,这样就不需要在变量中传递数据。
观察者模式/信号槽的两个缺点:
除此之外,我更喜欢观察者/信号槽,而不是子类化和高耦合。 |
![]() |
4
1
这样,如果添加新结构,就只需要修改枚举。 您还可以使用boost::shared\u ptr来处理指针的混乱。 |
![]() |
5
0
我没有正确的语法,所以我只列出声明来说明结构。泛型观察者可以期望一个参数,该参数要么是子类化为所需参数的特定形式,要么是包含观察者所需的所有基本参数的水平映射的结构。然后ObserverContainer可以作为 AbstractFactory ObserverContainer的每个子类可以是DoThatObserverFactory和DoThisObserverFactory。工厂将构建一个观察器,并为观察器分配一个配置,以告诉它需要哪个参数。
|
![]() |
csse · 我怎样才能找到观察的平均值? 6 年前 |
![]() |
pixel · C#根据订阅者的要求通知订阅者的事件 6 年前 |
![]() |
TheeSunnLightt · 事件处理和观察者模式(GoF) 7 年前 |
![]() |
Lirf · iOS Swift中的观察员、动作监听器、KVO 8 年前 |
![]() |
Anders · Jquery观察者模式 12 年前 |