Паттерны проектирования делятся на три основные категории: порождающие, структурные и поведенческие.
Порождающие паттерны:
- Фабричный метод (Factory Method): Предоставляет интерфейс для создания объектов в суперклассе, но позволяет подклассам изменять тип создаваемых объектов.
csharp
- Абстрактная фабрика (Abstract Factory): Предоставляет интерфейс для создания семейств связанных или зависимых объектов без указания их конкретных классов.
- Строитель (Builder): Отделяет конструирование сложного объекта от его представления, так что один и тот же процесс конструирования может создавать различные представления.
csharp
- Прототип (Prototype): Задает виды создаваемых объектов с помощью экземпляра-прототипа и создает новые объекты путем копирования этого прототипа.
- Одиночка (Singleton): Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Структурные паттерны:
- Адаптер (Adapter): Преобразует интерфейс одного класса в другой интерфейс, который ожидают клиенты. Адаптер позволяет классам с несовместимыми интерфейсами работать вместе.
csharp
- Мост (Bridge): Разделяет абстракцию и ее реализацию так, чтобы они могли изменяться независимо.
- Компоновщик (Composite): Позволяет сгруппировать объекты в древовидную структуру и работать с ними как с индивидуальными объектами.
- Декоратор (Decorator): Динамически добавляет новые обязанности объекту. Является гибкой альтернативой созданию подклассов для расширения функциональности.
- Фасад (Facade): Предоставляет унифицированный интерфейс к набору интерфейсов в подсистеме. Фасад определяет высокоуровневый интерфейс, упрощающий подсистему.
csharp
- Приспособленец (Flyweight): Позволяет использовать множество мелких объектов совместно, тем самым