Photoshopなどのツールには、クリックできるツールの選択肢があります(ペン、ブラシなど)。ツールをクリックすると、選択したツールに応じて、そのツールを使用してペイント、消去などを行うことができます。
それがオブジェクト指向デザインにどのように最適に実装されるのだろうかと思います。どのツールが選択されているかを常に認識しているGUIManagerがあるとしか考えられませんでした。次に、Canvas(描画領域)がマウスクリックまたはマウスドラッグを検出すると、GUIManagerにどのツールが選択されているかを尋ね、そのツールの動作を適用します。
考えられる解決策をクラスレベルの詳細(または時間がない場合は詳細)で説明している人はいますか?