Название
| Оригинальное название
| Описание
| |
Основные шаблоны (Fundamental)
|
Шаблон делегирования
| Delegation pattern
| Объект внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту
| |
Шаблон функционального дизайна
| Functional design
| Гарантирует, что каждый модуль компьютерной программы имеет только одну обязанность и исполняет её с минимумом побочных эффектов на другие части программы
| |
Неизменяемый объект
| Immutable
| Объект, который не может быть изменён после своего создания
| |
Интерфейс
| Interface
| Общий метод для структурирования компьютерных программ для того, чтобы их было проще понять
| |
Порождающие шаблоны (Creational) — шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять инстанцируемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту.
|
Абстрактная фабрика
| Abstract factory
| Класс, который представляет собой интерфейс для создания компонентов системы.
| |
Строитель
| Builder
| Класс, который представляет собой интерфейс для создания сложного объекта
| |
Фабричный метод
| Factory method
| Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанциировать
| |
Отложенная инициализация
| Lazy initialization
| Объект, инициализируемый во время первого обращения к нему
| |
Пул одиночек
| Multiton
| Гарантирует, что класс имеет поименованные экземпляры объекта и обеспечивает глобальную точку доступа к ним
| |
Объектный пул
| Object pool
| Класс, который представляет собой интерфейс для работы с набором инициализированных и готовых к использованию объектов
| |
Прототип
| Prototype
| Определяет интерфейс создания объекта через клонирование другого объекта вместо создания через конструктор
| |
Получение ресурса есть инициализация
| Resource acquisition is initialization (RAII)
| Получение некоторого ресурса совмещается с инициализацией, а освобождение — с уничтожением объекта
| |
Одиночка
| Singleton
| Класс, который может иметь только один экземпляр.
| |
Адаптер
| Adapter / Wrapper
| Объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс
| |
Мост
| Bridge
| Структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо
| |
Компоновщик
| Composite
| Объект, который объединяет в себе объекты, подобные ему самому
| |
Декоратор или Wrapper/Обёртка
| Decorator
| Класс, расширяющий функциональность другого класса без использования наследования
| |
Фасад
| Facade
| Объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое
| |
Единая точка входа
| Front Controller
| Обеспечивает унифицированный интерфейс для интерфейсов в подсистеме. Front Controller определяет высокоуровневый интерфейс, упрощающий использование подсистемы
| |
Приспособленец
| Flyweight
| Это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым
| |
Заместитель
| Proxy
| Объект, который является посредником между двумя другими объектами, и который реализовывает/ограничивает доступ к объекту, к которому обращаются через него
| |
Поведенческие шаблоны (Behavioral) определяют взаимодействие между объектами, увеличивая таким образом его гибкость.
|
Цепочка ответственности
| Chain of responsibility
| Предназначен для организации в системе уровней ответственности
| |
Команда, Action, Transaction
| Command
| Представляет действие. Объект команды заключает в себе само действие и его параметры
| |
Интерпретатор
| Interpreter
| Решает часто встречающуюся, но подверженную изменениям, задачу
| |
Итератор, Cursor
| Iterator
| Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого из объектов, входящий в состав агрегации
| |
Посредник
| Mediator
| Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга
| |
Хранитель, Token
| Memento
| Позволяет не нарушая инкапсуляцию зафиксировать и сохранить внутреннее состояния объекта так, чтобы позднее восстановить его в этом состоянии
| |
| Null object
| Предотвращает нулевые указатели, предоставляя объект «по умолчанию»
| |
Наблюдатель, Dependents, Publish-Subscribe, Listener
| Observer или Publish/subscribe
| Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии
| |
| Specification
| Служит для связывания бизнес-логики
| |
Состояние, Objects for States
| State
| Используется в тех случаях, когда во время выполнения программы объект должен менять свое поведение в зависимости от своего состояния
| |
Стратегия
| Strategy
| Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости
| |
Шаблонный метод
| Template method
| Определяет основу алгоритма и позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
| |
Посетитель
| Visitor
| Описывает операцию, которая выполняется над объектами других классов. При изменении класса Visitor нет необходимости изменять обслуживаемые классы.
| |