Шаблоны (паттерны) проектирования в PHP

Шаблоны проектирования (design patterns) — архитектурные конструкции, решающие часто возникающие задачи при разработке и проектировании программного продукта.
Как правило, шаблон проектирования не является законченным решением, а всего лишь пример решения задачи, который в большинстве случаев необходимо немного модифицировать под конкретную задачу.
Все шаблоны проектирования делятся на 4 основные группы, в которые входят уже конкретные шаблоны.

Основные (Fundamental).

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

Структурные шаблоны (Structural) — определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов или его реализацию, позволяя облегчить разработку и оптимизировать программу.

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

Кроме основных шаблонов, существует еще несколько типов шаблонов, такие как: для параллельного программирования, архитектуры системы и прочие.
Из них хотелось бы выделить, наиболее популярные в последнее время, шаблоны архитектуры системы.