2009-06-13 4 views
2

Скажем, у меня есть 4 кнопки, и я хочу, чтобы каждый из них делал другую вещь. Мне не нужен большой оператор switch, где я делаю другую вещь, на основе которой была нажата кнопка, и я не хочу использовать отдельный метод для каждой кнопки. Правильно ли это шаблон команды?Как использовать шаблон команды, чтобы уменьшить сложность меню?

ответ

5

Да, это обычное применение для шаблона команды. Представьте, что у вас есть набор классов (например, Open, Save, Print), каждый из которых предоставляет метод execute(), затем вы можете связать экземпляр одного из этих классов с вашими кнопками, а событие onclick кнопки может вызвать execute (), не зная о специфике того, что делает соответствующая команда.

Wikipedia article дает некоторые другие общие применения шаблона команды.

+0

Но как лучше всего сделать связь - внутри кнопки (например, есть специальный класс CommandButton, который содержит ссылку на ICommand ... ИЛИ вне класса в каком-то виде? – Iain

0

Да. Я использовал, чтобы помочь связать одно действие с щелчком меню и щелчком на панели инструментов. Это работает очень хорошо. Это никоим образом не революционизирует, а дает вам более чистый код и избавляет от неприятных операторов switch.

У меня есть код где-нибудь, что я попытаюсь выкопать, чтобы дать вам несколько примеров.