Паттерны программирования

Каталог паттернов проектирования в PHP с пояснениями и примерами.

Порождающие

Паттерны создания объектов: как появление объекта отделяют от его использования.

PHP Factory Pattern
PHP Factory Design Pattern Порождающий паттерн
Паттерн Фабрика в PHP

Короткий скринкаст: реализуем простой Factory Pattern в PHP.

PHP Abstract Factory Pattern
PHP Abstract Factory Design Pattern Порождающий паттерн
Абстрактная фабрика в PHP

Короткий скринкаст: паттерн «Абстрактная фабрика» в PHP — продукты и фабрики на общих интерфейсах.

PHP Builder Pattern
PHP Builder Design Pattern Порождающий паттерн
Паттерн Строитель в PHP

Короткий скринкаст: паттерн «Строитель» в PHP — собираем неизменяемый объект по цепочке методов.

PHP Prototype Pattern
PHP Prototype Design Pattern Порождающий паттерн
Паттерн Прототип в PHP

Короткий скринкаст: паттерн «Прототип» в PHP — клонируем объект через __clone() без повторного вызова конструктора.

PHP Singleton Pattern
PHP Singleton Design Pattern Порождающий паттерн
Паттерн Одиночка в PHP

Короткий скринкаст: паттерн «Одиночка» в PHP — один объект на всё приложение с ленивой инициализацией.

Структурные

Паттерны композиции: как классы и объекты собираются в более крупные структуры.

PHP Adapter Pattern
PHP Adapter Design Pattern Структурный паттерн
Паттерн Адаптер в PHP

Короткий скринкаст: паттерн «Адаптер» в PHP — приводим чуждое API к единому контракту без изменения легаси-кода.

PHP Bridge Pattern
PHP Bridge Design Pattern Структурный паттерн
Паттерн Мост в PHP

Короткий скринкаст: паттерн «Мост» в PHP — разделяем абстракцию и реализацию, чтобы они менялись независимо.

PHP Composite Pattern
PHP Composite Design Pattern Структурный паттерн
Паттерн Компоновщик в PHP

Короткий скринкаст: паттерн «Компоновщик» в PHP — листья и контейнеры в одном дереве, единый вызов render обходит всё.

PHP Decorator Pattern
PHP Decorator Design Pattern Структурный паттерн
Паттерн Декоратор в PHP

Короткий скринкаст: паттерн «Декоратор» в PHP — оборачиваем объект и добавляем поведение на лету, формируем цепочку.

PHP Facade Pattern
PHP Facade Design Pattern Структурный паттерн
Паттерн Фасад в PHP

Короткий скринкаст: паттерн «Фасад» в PHP — простая точка входа, за которой прячется целая подсистема. Оформляем заказ одной строкой.

PHP Flyweight Pattern
PHP Flyweight Design Pattern Структурный паттерн
Паттерн Приспособленец (Flyweight) в PHP

Короткий скринкаст: паттерн «Приспособленец» (Flyweight) в PHP — повторяющееся состояние делится между объектами через кэш.

PHP Proxy Pattern
PHP Proxy Design Pattern Структурный паттерн
Паттерн Заместитель (Proxy) в PHP

Короткий скринкаст: паттерн «Заместитель» (Proxy) в PHP — объект-сурогат контролирует доступ и делает ленивую загрузку с кэшированием.

Поведенческие

Паттерны взаимодействия: как объекты общаются и распределяют между собой обязанности.

PHP Chain of Responsibility Pattern
PHP Chain of Responsibility Design Pattern Поведенческий паттерн
Паттерн Цепочка обязанностей (Chain of Responsibility) в PHP

Короткий скринкаст: паттерн «Цепочка обязанностей» (Chain of Responsibility) в PHP — запрос идёт по цепочке обработчиков, пока один из них его не обработает.

PHP Command Pattern
PHP Command Design Pattern Поведенческий паттерн
Паттерн Команда (Command) в PHP

Короткий скринкаст: паттерн «Команда» (Command) в PHP — запрос превращается в объект, а инициатор лишь вызывает его выполнение.

PHP Interpreter Pattern
PHP Interpreter Design Pattern Поведенческий паттерн
Паттерн Интерпретатор (Interpreter) в PHP

Короткий скринкаст: паттерн «Интерпретатор» (Interpreter) в PHP — грамматика выражается деревом объектов, и каждый узел вычисляет себя.

PHP Iterator Pattern
PHP Iterator Design Pattern Поведенческий паттерн
Паттерн Итератор (Iterator) в PHP

Короткий скринкаст: паттерн «Итератор» (Iterator) в PHP — единый способ обхода коллекции без раскрытия её устройства.

PHP Mediator Pattern
PHP Mediator Design Pattern Поведенческий паттерн
Паттерн Посредник (Mediator) в PHP

Короткий скринкаст: паттерн «Посредник» (Mediator) в PHP — объекты общаются через посредника, а не напрямую.

PHP Memento Pattern
PHP Memento Design Pattern Поведенческий паттерн
Паттерн Снимок (Memento) в PHP

Короткий скринкаст: паттерн «Снимок» (Memento) в PHP — сохраняем состояние объекта для последующего отката.

PHP Observer Pattern
PHP Observer Design Pattern Поведенческий паттерн
Паттерн Наблюдатель (Observer) в PHP

Короткий скринкаст: паттерн «Наблюдатель» (Observer) в PHP — издатель уведомляет подписчиков об изменениях.

PHP State Pattern
PHP State Design Pattern Поведенческий паттерн
Паттерн Состояние (State) в PHP

Короткий скринкаст: паттерн «Состояние» (State) в PHP — поведение объекта меняется в зависимости от его текущего состояния.

PHP Strategy Pattern
PHP Strategy Design Pattern Поведенческий паттерн
Паттерн Стратегия (Strategy) в PHP

Короткий скринкаст: паттерн «Стратегия» (Strategy) в PHP — алгоритмы можно подменять во время выполнения.