Паттерны проектирования на 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 | Передаёт запрос по цепочке обработчиков, пока один из них не обработает его |