Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы====== Паттерны проектирования ====== ==== Шаблоны проектирования ==== ===== Цепочка обязанностей / Chain of Responsibility ===== Позволяет передавать запросы последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи. ===== Команда Команда / Command ===== Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций. ===== Итератор / Iterator ===== Даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления. ===== Посредник / Mediator ===== Позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник. ===== Снимок / Memento ===== Позволяет сохранять и восстанавливать прошлые состояния объектов, не раскрывая подробностей их реализации. ===== Наблюдатель / Observer ===== Создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. ===== Состояние / State ===== Позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта. ===== Стратегия / Strategy ===== Определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. ===== Шаблонный метод / Template Method ===== Определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. Паттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры. ===== Посетитель / Visitor ===== Позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться. ===== Ссылки ===== * [[http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F|Шаблон проектирования]] * [[http://ru.wikipedia.org/wiki/Design_Patterns|Design Patterns]] (RU) СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal