# Шаблоны проектирования

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

**Виды и примеры шаблонов проектирования**

* Порождающие&#x20;
  * Простая фабрика&#x20;
  * Фабричный метод&#x20;
  * Абстрактная фабрика&#x20;
  * Строитель&#x20;
  * Прототип&#x20;
  * Одиночка
* Структурные&#x20;
  * Адаптер&#x20;
  * Мост&#x20;
  * Компоновщик&#x20;
  * Декоратор&#x20;
  * Фасад&#x20;
  * Приспособленец&#x20;
  * Заместитель
* Поведенческие

  * Цепочка ответственности&#x20;
  * Команда&#x20;
  * Итератор&#x20;
  * Посредник&#x20;
  * Хранитель&#x20;
  * Наблюдатель&#x20;
  * Посетитель&#x20;
  * Стратегия&#x20;
  * Состояние&#x20;
  * Шаблонный метод

**Дополнительная литература**

* Design patterns : elements of reusable object-oriented software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
* Patterns of Enterprise Application Architecture by Martin Fowler
