独自のメニューを作成することにしたグラフィカル アプリケーションを設計しています。このメニューをプラットフォームに依存しないようにしたいと思います。当面の間、私のメニューは主にいくつかのボタンで構成されます。私の問題には、ボタンがクリックされたときのイベントの処理が含まれます。私のジレンマは、それが存在するコンテキストについて「知っている」ボタンにあります。ボタンを作成してマウスイベントを処理する大きなコードがある場合、ある種の switch ステートメントが必要になるかもしれません。switch ステートメントは、クリックされたボタンを一意に定義したものに基づいて、適切なアクションを呼び出す必要があります。
この switch ステートメントは避けたいと思います。私の最初のアイデアは、各ボタンがクリックされたときに正しいアクションをやみくもに開始するために使用する関数ポインタを維持することでした。これにより、ボタン固有のコードが削除されます。しかし、ボタンにコンテキスト固有の情報 (関数ポインターなど) を含めなければならないことに不満があります。私はかなり経験が浅く、これが悪い設計と見なされるかどうか疑問に思っています。それにもかかわらず、ある種の switch ステートメントを必要とせず、優れた OOP 設計と見なされる方法でメニューを設計するにはどうすればよいでしょうか? ご希望のソリューションをお聞きしたいと思います。
前もって感謝します!