AIKraft/Skills/Паттерн «Команда»

Паттерн «Команда»

Teaches the command pattern for decoupling task execution from invocation. Use when you need undo/redo functionality, queued operations, or want to decouple the object that invokes an operation from the one that performs it.

patternsdev official Другое

Что делает навык

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

Когда применять

  • Когда требуется отделить объект, инициирующий операцию, от объекта, который её выполняет.
  • Когда команды должны иметь определённый срок жизни или выполняться в очереди в конкретное время.
  • Когда необходимо избежать жёсткой привязки вызовов методов к конкретным именам методов в менеджере (например, при переименовании методов в будущем).
  • Когда прямые вызовы функций создают слишком много связей или сложность в поддержке кодовой базы.

Как работает

  1. Создать базовый класс Command с методом execute, который инкапсулирует действие.
  2. Заменить прямые вызовы методов (например, placeOrder, cancelOrder) на единый метод execute в менеджере (например, OrderManager).
  3. Метод execute менеджера должен принимать объект команды и аргументы, передавая их в метод execute команды.
  4. Создать отдельные функции-фабрики для каждой команды (PlaceOrderCommand, CancelOrderCommand, TrackOrderCommand), возвращающие экземпляры Command.
  5. Передавать необходимые данные (например, список заказов) в команду через аргументы или замыкания при создании команды.

Примеры запросов агенту

Реализуй паттерн Команда для системы управления заказами, чтобы отделить логику выполнения от менеджера.
Создай структуру команд PlaceOrderCommand и CancelOrderCommand для OrderManager, используя паттерн Команда.
Рефакторинг: замени прямые вызовы методов placeOrder и cancelOrder на объекты команд в JavaScript.

Описание составлено по SKILL.md навыка, сверено 06.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «command-pattern» из репозитория: # https://github.com/patternsdev/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r command-pattern/ ~/.claude/skills/command-pattern/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.