Паттерн Command используется для инкапсуляции запроса как объекта, позволяя параметризовать клиентов с различными запросами, ставить запросы в очередь или протоколировать их, а также поддерживать операции отмены.
Основные компоненты паттерна:
Command: Интерфейс или абстрактный класс, объявляющий метод для выполнения запроса.ConcreteCommand: Классы, реализующие Command, связывающие Receiver с действием. Каждый ConcreteCommand содержит ссылку на Receiver.Invoker: Класс, который инициирует команду. Он содержит ссылку на Command, но не знает деталей операции.Receiver: Класс, который выполняет фактическое действие. ConcreteCommand вызывает методы Receiver.Пример использования для реализации кнопок управления медиаплеером:
java
java
java
java
java
Преимущества: