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

Категоризация шаблонов проектирования

  1. Творческий

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

Некоторые из популярных шаблонов проектирования в этой категории:

  • Заводской метод
  • Абстрактная фабрика
  • Строитель
  • Прототип
  • Синглтон

2. Структурный

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

Некоторые из популярных шаблонов в этой категории:

  • Адаптер
  • Мост
  • Композитный
  • Декоратор
  • Фасад
  • Наилегчайший вес
  • Прокси

3. Поведение

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

Некоторые из популярных шаблонов в этой категории:

  • Цепочка ответственности
  • Команда
  • Итератор
  • Медиатор
  • Сувениры
  • Наблюдатель
  • Состояние
  • Стратегия
  • Посетитель

4. Параллелизм

Эти типы шаблонов проектирования имеют дело с парадигмами многопоточного программирования.

Некоторые из популярных шаблонов в этой категории:

  • Активный объект
  • Ядерная реакция
  • Планировщик

5. Архитектура

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

Некоторые из самых известных из них:

  • MVC (модель-представление-контроллер)
  • MVP (модель-представление-ведущий)
  • MVVM (Модель-Вид-ВидМодель)