GoF паттерны Flashcards
GoF patterns
Стратегия
Определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает взаимозаменяемость. Позволяет модифицировать алгоритмы независимо от использования на стороне клиента
Наблюдатель
Определяет (отношение) зависимость типа один ко многим между объектами таким образом, что при изменении состояния одного объекта все зависимые от него оповещаются об этом событии
Декоратор
Класс расширяющий функциональность другого класса без использования наследования
Фабрика и Фабричный метод
Фабрика инкапсулирует подробности создания объектов. Фабричный метод определяет интерфейс создания объектов но оставляет подклассам решение о том какой конкретно класс инстанцировать
Абстрактная фабрика
Предоставляет интерфейс для создания компонентов системы
Синглтон
Класс который может иметь только один экземпляр
Команда
Инкапсулирует запрос в виде объекта, объект заключает в себе само действие и его параметры. Может поддерживать отмену операций
Адаптер
Преобразует интерфейс класса к другому интерфейсу, на который рассчитан клиент. Обеспечивает совместную работу классов невозможную из-за несовместимости интерфейсов
Фасад
Предоставляет унифицированный интерфейс к группе интерфейсов подсистемы
Шаблонный метод
Определяет основные шаги алгоритма и позволяет подклассам предоставить реализацию одного или нескольких шагов. (Определяет основу алгоритма и позволяет наследникам предоставлять реализацию некоторых шагов алгоритма без изменения структуры в целом)
Итератор
Предоставляет механизм перебора элементов коллекции без раскрытия ее внутреннего представления (реализации)
Компоновщик
Объединяет объекты в древовидные структуры для представления иерархий часть/целое. Позволяет клиенту выполнять однородные операции с отдельными объектами
Состояние
Используется когда объект должен менять поведение в зависимости от своего состояния во время выполнения программы. Внешне это выглядит так как будто объект меняет свой класс
Прокси
Объект который является посредником между двумя другими объектами и который управляет доступом к оригинальному объекту
Мост
Структура которая разделяет абстракцию и реализацию таким образом, чтобы они могли меняться независимо друг от друга (структурный)
Билдер
Инкапсулирует создание сложного объекта, предоставляет интерфейс для создания объекта
Цепочка обязанностей
Использутеся когда необходимо предоставить нескольким объектам возможность обработать запрос
Приспособленец
Объект который представляет себя как уникальный экземпляр в разных частях программы, но фактически не является таковым
Интерпретатор
Решает часто встречающуюся, но подверженную изменениям задачу
Посредник
Обеспечивает взаимодействие множества объектов формируя при этом слабую связность и избавляя объекты от необходимости явно ссылаться друг на друга
Хранитель (мементо)
Позволяет не нарушая инкапсуляцию зафиксировать и сохранить внутреннее состояние объекта так, чтобы позднее восстановить его в этих состояниях
Прототип
Определяет интерфейс создания объекта через клонирование другого объекта вместо создания его через конструктор
Посетитель (visitior)
Описывает операцию которая выполняется над объектами других классов. При изменении класса visitor нет необходимости менять обслуживаемые классы