Шаблон проектирования (Па́ттерн от англ. pattern — шаблон, образец) заготовка решения или архитектурной конструкции, используемая неоднократно. Шаблон может быть как способом решения задачи, так и вполне законченной её реализацией (такой как многие элементы из Boost, Loki).
Наиболее распространенными являются шаблоны GoF
+ Показать
− Скрыть
"Gang Of Four" - "Банда Четырех", в составе "банды": Erich Gamma (Эрих Гамма), Richard Helm (Ричард Хелм), Ralph Johnson (Ральф Джонсон) и John Vlissides (Джон Влиссидес), написавшие "Design Pattern: Elements of Reusable Object-Oriented Software" (Addison-Wesley, 1995)
и Loki. Андрей Александреску ( создатель Loki и соразработчик STL. ) начал разрабоку Loki для книги "Modern C++ Design" (1998), где использовал наиболее часто встречающиеся шаблоны проектирования и дал их определение в своей библиотеке.
В зависимости от задач, выделяют 3 типа шаблонов:
порождающие паттерны
структурные паттерны
паттерны поведения
В игровой индустрии широко находят применение порождающие паттерны: Абстрактная фабрика (Abstract Factory) — создает объекты похожих классов. Одиночка (Singleton) — обеспечивает присутствие только одного экземпляра класса. Так же для увеличения скорости разработки используются различного рода паттерны для управления динамической памятью Умные указатели (Smart pointer).
Пример простейшей реализации паттерна Одиночка на языке С++:
Шаблон "Одиночка" является не только наиболее часто используемым и спорным шаблоном, но и излюбленным вопросом на собеседовании в различных аутсорсинговых компаниях.