Шаблон проектирования — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Как правило, шаблоны проектирования внедряются в уже существующую архитектуру проекта.
В отличие от готовых функций или библиотек, шаблон нельзя просто взять и скопировать в программу. Шаблон проектирования представляет собой не какой-то конкретный код, а общую концепцию решения той или иной проблемы, которую нужно будет ещё подстроить под нужды программы.
Из чего состоит шаблон проектирования? Описания шаблонов обычно очень формальны и чаще всего состоят из таких пунктов:
Такой формализм в описании позволил создать обширный каталог шаблон, проверив каждый из них на состоятельность.