В таком инструменте, как Photoshop, есть выбор инструментов, на которые вы можете нажать (например, перо, кисть и т. Д.). После того, как вы нажмете на инструмент, вы сможете использовать этот инструмент для рисования, стирания и т. Д. В зависимости от того, какой инструмент выбран.
Мне интересно, как это лучше всего реализовать в ОО-дизайне. Я мог думать только о наличии GUIManager, который всегда знает, какой инструмент выбран, а затем, когда Canvas (область рисования) обнаруживает щелчок мыши или перетаскивание мыши, он спрашивает GUIManager, какой инструмент выбран, и применяет поведение этого инструмента.
Кто-нибудь описывает возможное решение в деталях на уровне класса (или в любой детали, если у вас нет времени).