我正在用 C++ 创建一个 MVC 应用程序,并且我希望较低级别的模型类能够使用简单的文本更新 GUI 以向读者显示输出。我不想传递函数或对象指针,因为它会变得混乱,我不得不到处传递它们。我本质上想要的是相当于控制台 GUI 的“cout”——某种全局函数,可以调用它来从任何地方更新 GUI,而无需了解有关 GUI 的任何信息。
我在标题中提到了观察者模式,因为它听起来很像——GUI 可以以某种方式订阅这个全局对象或函数,并监听它何时被调用。但是,我并不是专门寻找使用 Observer 的解决方案。
人们向我提到了信号和槽,但可以肯定的是,除非是全局的,否则您仍然需要“传递东西”以允许对象发出信号。同样,全球参考点会有所帮助。
如何在确保遵守良好设计原则的同时做到这一点?