Какие шаблоны проектирования знаешь
Шаблоны проектирования — это проверенные решения типовых проблем, возникающих при проектировании ПО. Они помогают сделать систему более гибкой, модульной и поддерживаемой. В зависимости от их предназначения, шаблоны проектирования делятся на три основные категории:
Порождающие шаблоны (Creational Patterns)
Эти шаблоны связаны с процессом создания объектов, делая систему независимой от способа их создания, композиции и представления.
1. Одиночка (Singleton): Обеспечивает создание только одного экземпляра класса и предоставляет глобальную точку доступа к этому экземпляру.
2. Абстрактная фабрика (Abstract Factory): Позволяет создавать семейства связанных объектов без указания их конкретных классов.
3. Фабричный метод (Factory Method): Определяет интерфейс для создания объекта, но оставляет выбор класса объекта подклассам.
4. Строитель (Builder): Позволяет создавать сложные объекты пошагово.
Структурные шаблоны (Structural Patterns)
Описывают способы построения объектов и классов в более крупные структуры, при этом сохраняя гибкость и эффективность структур.
1. Адаптер (Adapter): Позволяет объектам с несовместимыми интерфейсами работать вместе.
2. Мост (Bridge): Разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо друг от друга.
3. Компоновщик (Composite): Позволяет группировать объекты в древовидные структуры для представления иерархий часть-целое.
4. Декоратор (Decorator): Динамически добавляет новые обязанности объектам.
5. Фасад (Facade): Предоставляет упрощённый интерфейс к сложной системе классов, библиотеке или фреймворку.
6. Прокси (Proxy): Предоставляет заместителя или плейсхолдер для другого объекта для контроля доступа к нему.
Поведенческие шаблоны (Behavioral Patterns)
Рассматривают эффективное взаимодействие и распределение обязанностей между объектами.
1. Наблюдатель (Observer): Позволяет объектам получать уведомления об изменениях состояния других объектов.
2. Стратегия (Strategy): Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми.
3. Команда (Command): Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов.
4. Состояние (State): Позволяет объекту изменять своё поведение при изменении его внутреннего состояния.
5. Цепочка обязанностей (Chain of Responsibility): Позволяет передавать запросы вдоль цепочки обработчиков. При этом каждый обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепочке.
6. Посредник (Mediator): Уменьшает связанность множества классов, вынося взаимодействие между объектами в один класс-посредник.
7. Итератор (Iterator): Предоставляет способ последовательного доступа к элементам объекта-агрегата без раскрытия его внутреннего представления.
Эти шаблоны не являются жёсткими правилами, а скорее рекомендациями и лучшими практиками, которые можно адаптировать под конкретные задачи и условия проекта.
May 22, 2024, easyoffer

офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру