Перейти к содержанию

Паттерны проектирования на C# / .NET

Оглавление

Порождающие паттерны

Паттерн Описание
Singleton Гарантирует единственный экземпляр класса и глобальную точку доступа к нему
Factory Method Делегирует создание объекта подклассам через переопределяемый метод
Abstract Factory Создаёт семейства связанных объектов без указания конкретных классов
Builder Пошагово собирает сложный объект, отделяя конструирование от представления
Prototype Создаёт новые объекты копированием заранее настроенных прототипов

Структурные паттерны

Паттерн Описание
Adapter Преобразует интерфейс одного класса в интерфейс, ожидаемый клиентом
Bridge Разделяет абстракцию и реализацию на независимо развиваемые иерархии
Facade Даёт простой унифицированный интерфейс к сложной подсистеме
Decorator Динамически добавляет объекту новое поведение, оборачивая его
Composite Компонует объекты в древовидные структуры и работает с ними единообразно
Flyweight Экономит память, разделяя повторяющееся состояние множества объектов
Proxy Подставляет объект-заместитель, контролирующий доступ к другому объекту

Паттерны поведения

Паттерн Описание
Strategy Инкапсулирует семейство взаимозаменяемых алгоритмов
Template Method Задаёт скелет алгоритма, отдавая отдельные шаги подклассам
Mediator Инкапсулирует взаимодействие множества объектов в отдельном посреднике
Iterator Даёт последовательный доступ к элементам коллекции без раскрытия её структуры
Observer Оповещает зависимые объекты об изменениях состояния субъекта
Memento Сохраняет и восстанавливает состояние объекта без нарушения инкапсуляции
Visitor Добавляет новые операции над структурой объектов без изменения самих классов
Command Превращает запрос в самостоятельный объект с возможностью отмены или очереди
State Меняет поведение объекта при изменении его внутреннего состояния
Chain of Responsibility Передаёт запрос по цепочке обработчиков, пока один из них не обработает его