Паттерны проектирования или шаблоны проектирования — это типичные способы решения некоторых типичных проблем.

Википедия описывает их следующим образом:

Шаблон проектирования, или паттерн, в разработке программного обеспечения — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования, в рамках некоторого часто возникающего контекста.

Не стоит преувеличивать значение паттернов и применять везде и в обязательном порядке. Однако и приуменьшать их значение тоже не стоит. Это методы решение частых задач и эти методы являются опытом других разработчиков.

Паттерны, используемые в нужных местах могут упростить разработку, особенно в команде.

Типы шаблонов

Шаблоны бывают следующих видов:

  1. Порождающие.
  2. Структурные.
  3. Поведенческие.

Порождающие шаблоны

Википедия гласит:

Порождающие шаблоны — шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять наследуемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту.

Порождающие шаблоны — это типичные способы создания объектов и структур программы, порой это не так просто, как может показаться на первый взгляд

Структурные шаблоны

На Википедии написано:

Структурные шаблоны — шаблоны проектирования, в которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры.

Поведенческие шаблоны

Википедия гласит:

Поведенческие шаблоны — шаблоны проектирования, определяющие алгоритмы и способы реализации взаимодействия различных объектов и классов.

Паттерны описывают как можно создавать структуры программы, как их организовывать и как они могут взаимодействовать.

Важно помнить что это не строгие требования а рекомендации, опыт тысяч разработчиков.

Так же паттерны — это часть профессионального лексикона разработчиков, позволяющий описать в паре фраз устройство огромного кода.