Шаблоны проектирования — шаблон «Одиночка» | Объяснение и реализация на языке C++
Mike Shah
0:00 / 0:00
Шаблоны проектирования — шаблон «Одиночка» | Объяснение и реализация на языке C++
15 899 просмотров · 4 года назад
Mike Shah
41,4 тыс. подписчиков
15 899 просмотров · 4 года назад
►Плейлист «Проектирование программного обеспечения и шаблоны проектирования»: • C++ Software Design and Design Patterns
►Полные курсы можно найти на сайте: https://courses.mshah.io/
►Поддержите канал, присоединившись к сообществу: / @mikeshah
►Репозиторий Git: https://github.com/MikeShah/DesignPat...
►Описание урока: В этом уроке я покажу, как реализовать порождающий шаблон проектирования в C++, известный как «синглтон». Многие считают этот шаблон спорным из-за возможности его неправильного использования, однако сам по себе он может быть полезен, когда нам действительно нужна только одна точка доступа к определённому классу (например, файловой системе или логгеру). Этот урок также освежит в памяти идею «статичности» — простого способа реализации шаблона Singleton.
Полезный ресурс по static: https://en.cppreference.com/w/cpp/lan...
00:00 Шаблоны проектирования несовершенны
00:58 Порождающий шаблон проектирования
2:25 Пример класса Logger
4:10 Создание нескольких экземпляров объекта
5:15 Использование модификаторов доступа класса для конструктора
6:06 Идея функции-члена GetInstance
7:06 Ключевое слово static
7:50 Пример статической функции
10:22 Практический пример использования static в классе
11:00 Инициализация статических переменных-членов
13:30 Статический указатель на экземпляр нашего класса как переменная-член
15:40 Использование функции-члена из нашего единственного экземпляра
16:50 Создание статической функции-члена
17:37 Реализация нашего класса Logger
19:10 Выделение памяти для нашего указателя
20:50 Добавление сообщений в наш logger
22:18 Будьте осторожны с возвратом указателей на переменные-члены
24:20 Проектируйте так, чтобы защитить клиентов вашего API
25:10 Создайте статическую переменную в GetInstance
27:30 Другие вопросы проектирования и закрытие
►Канал на YouTube: / mikeshah
►Поставьте лайк и подпишитесь, чтобы помочь каналу!
►Присоединяйтесь к нашему бесплатному сообществу: https://courses.mshah.io/communities/...