❓ Что такое паттерн «Команда» и как его реализовать в GoПаттерн «Команда» —
поведенческая модель, которая оборачивает
запросы или операции в объекты, позволяя
откладывать их выполнение,
выстраивать в очереди,
отслеживать историю и
отменять.
❕ В Go вместо абстрактных классов применяются
пользовательские типы, их значения и интерфейсы, а для реализации используется
агрегирование и
встраивание.
Основные компоненты паттерна:
1.
Command — объект-запрос для выполнения.
2.
Receiver — объект, выполняющий команду.
3.
Invoker — инициатор запроса, отправляющий команду.
➖ Паттерн разделяет
инициатора операции и
исполнителя.
Инициатор знает только, как
отправить команду.
Для реализации нужно:
1.
Интерфейс Command, описывающий общие методы команд.
2.
ConcreteCommand — класс, реализующий команду и взаимодействующий с
Receiver.
3.
Invoker — класс, инициирующий выполнение команд.
4.
Receiver — класс, выполняющий действия.
➖ Invoker может инициировать
выполнение и
отмену команды.
ConcreteCommand отправляет запросы на
выполнение в Receiver.
🐸 Библиотека Go для собеса