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