C++ で MVC アプリケーションを作成していますが、下位レベルのモデル クラスで GUI を単純なテキストで更新して、リーダーに出力を表示できるようにしたいと考えています。関数やオブジェクトのポインターを渡す必要はありません。面倒になり、あちこちに渡さなければならないからです。私が本質的に望んでいるのは、コンソール GUI の「cout」に相当するものです。これは、GUI について何も知らなくても、どこからでも GUI を更新するために呼び出すことができるある種のグローバル関数です。
タイトルでオブザーバー パターンについて言及しましたが、これはそのように聞こえるためです。GUI は、何らかの方法でこのグローバル オブジェクトまたは関数をサブスクライブし、呼び出されたときにリッスンすることができます。ただし、Observer を使用したソリューションを具体的に探しているわけではありません。
人々は私にシグナルとスロットについて言及しましたが、確かに、グローバルでない限り、オブジェクトがシグナルを放出できるようにするために「物事を渡す」必要があります。ここでも、グローバルな参照ポイントが役立ちます。
優れた設計原則が守られていることを確認しながら、これを行うにはどうすればよいですか?