Какие есть паттерны проектирования ?
Спросят с вероятностью 25%
Паттерны проектирования — это проверенные решения для часто встречающихся проблем, с которыми разработчики сталкиваются при проектировании и разработке ПО. Они представляют собой шаблоны для решения задач проектирования в рамках данного контекста. Паттерны помогают сделать систему более гибкой, модульной и адаптируемой к изменениям.
Их обычно делят на три основные категории:
1️⃣ Порождающие (Creational Patterns)
Эти паттерны обеспечивают механизмы создания объектов, повышая гибкость и повторное использование существующего кода.
- Одиночка (Singleton): Гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
- Фабричный метод (Factory Method): Определяет интерфейс для создания объекта, но позволяет подклассам изменять тип создаваемых объектов.
- Абстрактная фабрика (Abstract Factory): Позволяет создавать семейства связанных объектов, не специфицируя их конкретные классы.
- Строитель (Builder): Позволяет создавать сложные объекты пошагово.
- Прототип (Prototype): Позволяет копировать объекты, не вдаваясь в подробности их реализации.
2️⃣ Структурные (Structural Patterns)
Структурные паттерны описывают способы сборки объектов и классов в более крупные структуры, при этом сохраняя гибкость и эффективность структур.
- Адаптер (Adapter): Позволяет объектам с несовместимыми интерфейсами работать вместе.
- Мост (Bridge): Разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо.
- Компоновщик (Composite): Позволяет считать единичные объекты и составные объекты единообразно.
- Декоратор (Decorator): Позволяет динамически добавлять новые функции объектам, помещая их в оболочку из других объектов.
- Фасад (Facade): Предоставляет упрощенный интерфейс к сложной системе классов, библиотеке или фреймворку.
- Приспособленец (Flyweight): Эффективно поддерживает большое количество мелких объектов.
- Заместитель (Proxy): Предоставляет заменитель или местозаполнитель для другого объекта, чтобы контролировать доступ к нему.
3️⃣ Поведенческие (Behavioral Patterns)
Поведенческие паттерны регулируют алгоритмы и ответственности между объектами, делают взаимодействие между объектами более гибким.
- Цепочка обязанностей (Chain of Responsibility): Позволяет передавать запросы последовательно по цепочке обработчиков.
- Команда (Command): Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить в очередь, логировать и т.д.
- Итератор (Iterator): Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.
- Посредник (Mediator): Уменьшает сложность взаимодействия между объектами, предоставляя централизованное место для управления ими.
- Хранитель (Memento): Позволяет сохранять и восстанавливать предыдущее состояние объекта без раскрытия подробностей его реализации.
- Наблюдатель (Observer): Позволяет объектам получать уведомления об изменении состояния других объектов.
- Состояние (State): Позволяет объекту изменять свое поведение при изменении его внутреннего состояния.
- Стратегия (Strategy): Определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость.
- Шаблонный метод (Template Method): Определяет скелет алгоритма, позволяя подклассам переопределять некоторые шаги алгоритма, не изменяя его структуру.
- Посетитель (Visitor): Позволяет добавлять новые операции к объектам без изменения классов этих объектов.
Каждый паттерн решает свою уникальную задачу в контексте проектирования ПО, облегчая разработку и поддержку сложных систем.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Post #272
6.25K
- 🔥 19
- ❤ 3
- 👍 2
- 🤯 1