Перейти к содержимому

Паттерны проектирования: объяснение и реализация паттерна «Команда» (Command) на C++

Mike Shah

0:00 / 0:00

Паттерны проектирования: объяснение и реализация паттерна «Команда» (Command) на C++

49 168 просмотров · 4 года назад
Mike Shah
41,4 тыс. подписчиков
49 168 просмотров · 4 года назад
►Плейлист по проектированию программного обеспечения и шаблонам проектирования:    • C++ Software Design and Design Patterns   ►Полные курсы доступны по ссылке: https://courses.mshah.io/ ►Поддержите канал, став участником:    / @mikeshah   ►Описание урока: В этом уроке я расскажу вам об одном из самых мощных шаблонов проектирования поведения — шаблоне команд. Этот шаблон моделирует объекты, которые действуют как команды, и это один из самых удобных способов хранения последовательности «команд» или действий, происходящих в вашей программе. Я покажу вам пример использования шаблона для хранения команд в виде очереди, и этот шаблон можно использовать для элегантной реализации системы отмены/повтора действий. Бесплатный ресурс: https://gameprogrammingpatterns.com/c... 00:00 Что такое шаблоны проектирования 00:30 Поведенческие шаблоны проектирования 1:00 Шаблон команды 1:30 Применение шаблона команды 1:59 Ресурсы по шаблонам проектирования 2:50 Концептуальное понимание шаблона команды 4:00 Пример игрового контроллера 4:40 Использование наследования для отношения «является» 5:20 Ключевая идея того, что делает команда 5:50 Объяснение виртуального в C++ 6:30 Добавление команд в очередь в некоторой структуре данных 7:40 Отмена команд в нашей истории 9:10 Начало работы с шаблоном команды на C++ 10:15 Создание класса команды 10:45 Создание функций-членов интерфейса 11:25 Простой пример использования шаблона команды 12:40 Создание Move, который является типом команды 13:50 Демонстрация того, как должны быть реализованы чистые виртуальные функции 15:00 Создание персонажа 15:45 Передача наш персонаж как аргумент 17:02 Подготовка нашего персонажа к движению 18:25 Добавление вывода для просмотра происходящего 20:00 Первая команда нашего персонажа 20:40 Хранение нескольких команд в очереди 23:00 Управление временем жизни наших команд с помощью указателей 24:40 Отмена наших команд 25:30 Как мы узнаем, что это работает? 26:00 Хранение данных о позиции нашего персонажа во время движения 29:35 Проверка работы функций выполнения и отмены 31:30 Использование другой структуры данных для выполнения отмены 32:12 Заключительный разбор кода 34:10 Заключение ►Канал YouTube:    / mikeshah   ►Пожалуйста, поставьте лайк и подпишитесь, чтобы помочь каналу! ►Присоединяйтесь к нашему бесплатному сообществу: https://courses.mshah.io/communities/...