Паттерн Команда на C#

Паттерн Команда инкапсулирует запрос в виде объекта, делая возможной параметризацию клиентских объектов с другими запросами, организацию очереди или регистрацию запросов, а также поддержку отмены операций.


Паттерн Команда отделяет объект, выдающий запросы, от объекта, который умеет эти запросы выполнять. Объект команды инкапсулирует получателя с операцией или набором операций.


Инициатор вызываем метод Execute() объекта команды что приводит к выполнению соответствующих операций с получателем. Паттерн команды могут поддерживать механизмы отмены, восстанавливающий объект в состоянии до последнего вызова метода Execute();


Макрокоманды— простое расширение паттерна Команда, позволяющее выполнять цепочки из нескольких команд, в них так же легко реализуется механизм отмены.


Команды также могут использоваться для реализации система регистрации команд и поддержки транзакций.

В данном примере рассмотрим две вариации паттерна, первый пример будет без возможности механизма отмены, другой с отменой, сделал так специально что бы было проще разобраться в паттерне.

Пример 1 представим мы разрабатываем систему умный дом, у нас есть ТЗ которая подразумевает управление освещением в доме. Я не стал усложнять пример, отдельно взятой комнате, будем включать и выключать освещение во всем доме)

 

Пример 2 основан на механизме отмены, будем так же оборудовать наш умный дом новой функцией управления вентилятором. У нас будет несколько режимов, а так же возможность возврата предыдущего режима.

 

Обновлено: 20.01.2022 — 15:34

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.