我们有一个Visual C ++ 2013(C ++ 11)解决方案,其中包含多个组件。如果任何一个组件发生任何更改,我想通知其他组件。并非每个组件都需要知道每个更改。我的意思是,
假设我有A,B,C和D组成部分
A组件发生变化。B,C和D组件需要了解A组件的变化。
组件B有变化。组件A和C需要了解组件B的变化。
为此,我们有3个想法,我想知道什么是最好的方法,当然,除了这3个想法之外,其他任何事情都将受到欢迎。
想法1:
想法2:
想法3:
我们在解决方案中考虑的因素是
答案 0 :(得分:0)
这听起来像是使用“观察者设计模式”的情况。通常,使用这种设计模式,您有两种不同类型的类:Subject和Observer。观察者将订阅主题的更改,以便在主题发生更改时,将通知观察者。
在您的情况下,每个组成部分都是主题和观察者。一个组件可以将其兴趣注册到另一个组件中。通过将指向自身的指针传递给另一个组件,可以将发生的更改通知给它,即将调用其函数x。
这里有一些在C ++中使用观察者模式的示例:
https://cpppatterns.com/patterns/observer.html
https://www.codeproject.com/Articles/328365/Understanding-and-Implementing-Observer-Pattern-2