Что такое шаблон дизайна действий? - PullRequest
11 голосов
/ 19 декабря 2008

Что такое шаблон дизайна действий, я не слышал об этом раньше? Я подозреваю, что это то же самое, что и шаблон Command Design [wikipedia], но я не могу найти в нем никаких ресурсов.

Ответы [ 3 ]

12 голосов
/ 19 декабря 2008

Вы правы, шаблон действия == шаблон команды. Вы слышали, что это называется шаблоном действия чаще всего в дизайне GUI, в форме "при нажатии какой-либо кнопки, выполните это действие". В коде кнопка будет подключена к какому-либо объекту действия.

1 голос
/ 03 марта 2016

Я сейчас читаю " Шаблон действий / исполнителей " на MSDN, и я вынужден не согласиться с предпосылкой, что шаблоны команд и действий / исполнителей совпадают.

Из описания шаблона команды на SourceMaking.com:

  • Инкапсулирует запрос как объект, что позволяет вам параметризировать клиентов с различными запросами, запросами очереди или журнала и поддерживать отмену операций.
  • Повысить "вызов метода для объекта" до полного состояния объекта.
  • Объектно-ориентированный обратный вызов

Из статьи MSDN о шаблоне Action / Executor:

Шаблон Action / Executor определяет стратегию для сопоставления вариантов использования с кодом, обеспечивая лучшую видимость и гибкость. Кроме того, он решает проблемы загрязнения сущностей и пропускает правильное использование транзакций.

Разница заключается в том, что «действие» заключает в себе один или несколько шагов, которые при успешном выполнении передают управление другому объекту, ответственному за знание того, как сохранить эти изменения в базе данных, веб-службе или файловом хранилище. Действие отделено от того, как оно выполняется / сохраняется.

«Команда» ощущается как половина шаблона Action / Executor - «действие» кажется синонимом «команды». Шаблон Action / Executor делает еще один шаг вперед и описывает еще одну проблему, ответственность за которую заключается в том, чтобы взять изменения, сгенерированные «действием» или «командой», и сохранить их в каком-то месте.

0 голосов
/ 05 ноября 2015

Шаблон проектирования действий такой же, как шаблон проектирования команд. Действие - это ключевой объект, который инкапсулирует в себе информацию о том, каково его поведение, какую обработку необходимо выполнить в его методе do (), как его можно отменить и так далее. Когда приложение или любой из его компонентов спроектирован в соответствии с шаблоном проектирования Action, тогда все действия в приложении могут быть представлены в виде действия, каждая вещь может быть переделана / отменена несколько раз. Например. Макросы в Excel, Отмена / Повторить в текстовых редакторах и т. Д.

Класс действия, который является строительным блоком в этом шаблоне проектирования, может быть разработан следующим образом: -

public interface Action{
  public void do();
  public void undo();
  public void do(int iNoOfTimes);
}

public class FileCopyAction implements Action{
  private int iActionId;
  public void do(){}
  public void undo(){}
  public void do(int iNoOfItems){}
}

Надеюсь, это поможет.

...