Паттерны (шаблоны) проектирование в PHP. Введение.
Паттерн проектирования (design pattern) - это общее типовое решение некоторой проблемы, многократно повторяемое в процессе проектирования архитектуры программного продукта. Они показывают отношения и взаимодействия между классами, позволяют сделать систему гибкой и легко изменяемой. За счет их правильного использования повышается коэффициент использования готовых решений.
Я буду постепенно описывать каждый паттерн и добавлять его в список на этой странице.
Я предполагаю, что читатель осведомлен о понятиях ООП и знает в чем разница между интерфейсом и абстрактным классом. Знает что такое полиморфизм, инкапсуляция и наследование. Если вы не уверены в своих силах, рекомендую к прочтению статью из википедии "Объектно-ориентированное программирование".
В процессе описания я буду использовать UML, для графического изображением классов и их отношений. На этот счет не стоит беспокоиться, даже если вы не сталкивались с ним раньше, его можно интуитивно понять.
Понятия
- Здесь и далее в статьях я буду употреблять "паттерн" (pattern) вместо русского аналога "шаблон"
- Инстанация (instanate) - процесс создания объекта определенного класса.
- Код клиента - это код программиста, который будет работать с нашей частью программы по принципу черного ящика, т.е. только через публичный интерфейс
Список
Порождающие
- Abstract Factory (Абстрактная фабрика)
- Factory Method (Фабричный метод)
- Singleton (Одиночка)
- Prototype (Прототип)
- Builder (Строитель)
Структурные
- Adapter (Адаптер)
- Bridge (Мост)
- Composite (Компоновщик)
- Decorator (Декоратор)
- Facade (Фасад)
- Flyweight (Приспособленец)
- Proxy (Прокси)
Паттерны поведения
- Chain of Responsibility (Цепочка обязанностей)
- Command (Команда)
- Interpreter (Интерпретатор)
- Iterator (Итератор)
- Mediator (Посредник)
- Memento (Хранитель)
- Observer (Наблюдатель)
- State (Состояние)
- Strategy (Стратегия)
- Template Method (Шаблонный метод)
- Visitor (Посетитель)