2. Паттерн проектирования "Прототип" | ООП 2025
Автор: Aleksey Malov
Загружено: 2025-09-19
Просмотров: 397
В этой лекции разбираем паттерн «Прототип» — зачем он нужен, почему «ручное» копирование полей ломается, и как правильно клонировать полиморфные объекты. Покажем базовую реализацию, обобщённый CRTP-миксин PrototypeImpl, и почему наследование от конкретных классов — красный флаг. Усилим контракты концептами C++20.
Во второй части — альтернативный путь через стирание типов с помощью std::any. Сравним скорость работы наивного и оптимизированного вариантов.
Практические задания и примеры кода доступны на моем гитхабе: https://github.com/alexey-malov/ood
Чтобы оставаться на связи в условиях блокировки Youtube в России подписывайтесь на мой Telegram-канал https://t.me/vivid_coding
Тайм-коды:
0:00 Структура паттерна прототип
4:12 Применение паттерна для клонирования фигур
6:26 Обобщенный mixin PrototypeImpl для устранения дублирования кода
17:26 Когда клонирование может быть эффективнее создания эффекта с нуля
19:15 Дорабатываем PrototypeImpl
22:57 Почему наследование от конкретного класса говорит о плохой архитектуре
27:22 Устраняем дублирование кода при помощи миксина PersonImpl
30:57 Добавляем немного шаблонной магии и концептов для усиления миксинов
38:54 Альтернативная реализация через стирание типов
47:43 Анализ производительности наивного решения
51:55 Оптимизируем доступ к std::any за счёт кеширования
55:41 Бенчмаркинг оптимизированной верси и
В заставке использована композиция "Папа может в Си" музыкального коллектива "Научно-технический рэп" (https://vk.com/nii_rap)
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: