Паттерны программирования
Каталог паттернов проектирования в PHP с пояснениями и примерами.
Порождающие
Паттерны создания объектов: как появление объекта отделяют от его использования.
Короткий скринкаст: реализуем простой Factory Pattern в PHP.
Короткий скринкаст: паттерн «Абстрактная фабрика» в PHP — продукты и фабрики на общих интерфейсах.
Короткий скринкаст: паттерн «Строитель» в PHP — собираем неизменяемый объект по цепочке методов.
Короткий скринкаст: паттерн «Прототип» в PHP — клонируем объект через __clone() без повторного вызова конструктора.
Короткий скринкаст: паттерн «Одиночка» в PHP — один объект на всё приложение с ленивой инициализацией.
Структурные
Паттерны композиции: как классы и объекты собираются в более крупные структуры.
Короткий скринкаст: паттерн «Адаптер» в PHP — приводим чуждое API к единому контракту без изменения легаси-кода.
Короткий скринкаст: паттерн «Мост» в PHP — разделяем абстракцию и реализацию, чтобы они менялись независимо.
Короткий скринкаст: паттерн «Компоновщик» в PHP — листья и контейнеры в одном дереве, единый вызов render обходит всё.
Короткий скринкаст: паттерн «Декоратор» в PHP — оборачиваем объект и добавляем поведение на лету, формируем цепочку.
Короткий скринкаст: паттерн «Фасад» в PHP — простая точка входа, за которой прячется целая подсистема. Оформляем заказ одной строкой.
Короткий скринкаст: паттерн «Приспособленец» (Flyweight) в PHP — повторяющееся состояние делится между объектами через кэш.
Короткий скринкаст: паттерн «Заместитель» (Proxy) в PHP — объект-сурогат контролирует доступ и делает ленивую загрузку с кэшированием.
Поведенческие
Паттерны взаимодействия: как объекты общаются и распределяют между собой обязанности.
Короткий скринкаст: паттерн «Цепочка обязанностей» (Chain of Responsibility) в PHP — запрос идёт по цепочке обработчиков, пока один из них его не обработает.
Короткий скринкаст: паттерн «Команда» (Command) в PHP — запрос превращается в объект, а инициатор лишь вызывает его выполнение.
Короткий скринкаст: паттерн «Интерпретатор» (Interpreter) в PHP — грамматика выражается деревом объектов, и каждый узел вычисляет себя.
Короткий скринкаст: паттерн «Итератор» (Iterator) в PHP — единый способ обхода коллекции без раскрытия её устройства.
Короткий скринкаст: паттерн «Посредник» (Mediator) в PHP — объекты общаются через посредника, а не напрямую.
Короткий скринкаст: паттерн «Снимок» (Memento) в PHP — сохраняем состояние объекта для последующего отката.
Короткий скринкаст: паттерн «Наблюдатель» (Observer) в PHP — издатель уведомляет подписчиков об изменениях.
Короткий скринкаст: паттерн «Состояние» (State) в PHP — поведение объекта меняется в зависимости от его текущего состояния.
Короткий скринкаст: паттерн «Стратегия» (Strategy) в PHP — алгоритмы можно подменять во время выполнения.