今日のGUIツールキットの大部分は、Signals + Slotsモデルを使用しています。それを開拓したのは、QtとGTK +でした。
ご存知のように、ウィジェットまたはグラフィカルオブジェクト(場合によっては表示されないものも)がメインループハンドラーに信号を送信します。次に、メインループハンドラーは、そのウィジェット/グラフィカルオブジェクトに割り当てられたイベント、コールバック、またはスロットを呼び出します。通常、virtual
すべての事前定義された信号を処理するために、ツールキットによってすでに提供されているデフォルト(およびほとんどの場合)のイベントハンドラーがあります。そのため、開発者がすべてのメッセージに対してメインループ全体とハンドラー全体を記述する必要がありました。 (WINAPIを考えてください)、開発者は新機能を実装するために必要な信号についてのみ心配する必要があります。
現在、私が知る限り、このデザインはほとんどの最新のツールキットで使用されています。Qt、GTK +、FLTKなどがあります。JavaSwingがあります。C#には言語機能(イベントとデリゲート)さえあり、Windowsフォームはこの設計で開発されました。実際、過去10年間で、このGUIプログラミングの設計は、一種の未記述の標準になりました。それは生産性を高め、より優れた抽象化を提供するためです。
しかし、私の質問は:
現代のGUIプログラミングにとって並列または実用的な代替設計はありますか?
つまり、Signals + Slotsデザインは、町で唯一の実用的なデザインですか?他のデザインでGUIプログラミングを実行することは可能ですか?代替設計に基づいて構築された最新の(できれば成功し、人気のある)GUIツールキットはありますか?
std::function
ではなく、のように同期してすぐに呼び出されます。さらに、WinAPI はDefWindowProc
、デフォルトの実装としてWindowsメッセージを処理する機能を提供します。だから私はあなたの質問が欠陥のあるロジックに基づいていると仮定します。