Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
php:patterns [2022/05/10 22:26] mirocowphp:patterns [2022/05/11 13:18] (текущий) mirocow
Строка 1: Строка 1:
-====== Паттерны проектирования ======+{{tag>patterns,шаблоны проектирования,паттерны проектирования}} 
 + 
 +====== Шаблоны проектирования ====== 
 + 
 +==== Шаблоны проектирования ==== 
 + 
 +==== Цепочка обязанностей / Chain of Responsibility ==== 
 + 
 +Позволяет передавать запросы последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи. 
 + 
 +==== Команда Команда / Command ==== 
 + 
 +Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций. 
 + 
 +==== Итератор / Iterator ==== 
 + 
 +Даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления
 + 
 +==== Посредник / Mediator ==== 
 + 
 +Позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник. 
 + 
 +==== Снимок / Memento ==== 
 + 
 +Позволяет сохранять и восстанавливать прошлые состояния объектов, не раскрывая подробностей их реализации. 
 + 
 +==== Наблюдатель / Observer ==== 
 + 
 +Создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. 
 + 
 +==== Состояние / State ==== 
 + 
 +Позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта. 
 + 
 +==== Стратегия / Strategy ==== 
 + 
 +Определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. 
 + 
 +==== Шаблонный метод / Template Method ==== 
 + 
 +Определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. Паттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры. 
 + 
 +==== Посетитель / Visitor ==== 
 + 
 +Позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.
  
 ===== Ссылки ===== ===== Ссылки =====