📌 Какие есть паттерны в объектном проектировании?



💬 Спрашивают в 27 % собеседований



🤔 Основные паттерны в объектно-ориентированном проектировании:



1️⃣ Порождающие паттерны:



Singleton: Обеспечивает создание единственного экземпляра класса.



Factory Method: Создает объекты через вызов метод, без указания конкретного класса.



Abstract Factory: Создает семейства связанных объектов без указания их конкретных классов.



Builder: Шаг за шагом создает сложный объект.



Prototype: Создает объекты через клонирование существующих экземпляров.



2️⃣ Структурные паттерны:



Adapter: Преобразует интерфейс класса в другой интерфейс, ожидаемый клиентами.



Bridge: Разделяет абстракцию и реализацию, позволяя изменять их независимо.



Composite: Организует объекты в древовидные структуры для представления иерархий.



Decorator: Динамически добавляет новые обязанности объектам.



Facade: Предоставляет унифицированный интерфейс к набору интерфейсов подсистемы.



Flyweight: Поддерживает большое количество мелких объектов, разделяя их состояние.



Proxy: Представляет суррогатный объект, который контролирует доступ к другому объекту.



3️⃣ Поведенческие паттерны:



Chain of Responsibility: Передает запрос по цепочке обработчиков.



Command: Инкапсулирует запрос как объект.



Interpreter: Определяет грамматику для языка и интерпретатор для предложений этого языка.



Iterator: Предоставляет способ последовательного доступа ко всем элементам коллекции.



Mediator: Обеспечивает взаимодействие множества объектов, избегая их прямых ссылок друг на друга.



Memento: Сохраняет и восстанавливает внутреннее состояние объекта.



Observer: Оповещает зависимые объекты о изменениях состояния.



State: Позволяет объекту изменять свое поведение при изменении внутреннего состояния.



Strategy: Определяет семейство алгоритмов, инкапсулирует их и делает их взаимозаменяемыми.



Template Method: Определяет скелет алгоритма в методе, оставляя реализацию шагов подклассам.



Visitor: Позволяет добавлять новые операции к объектам, не изменяя их классы.



🤔 Краткий ответ



Основные паттерны в объектно-ориентированном проектировании включают:



Порождающие: Singleton, Factory Method, Abstract Factory, Builder, Prototype.



Структурные: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.



Поведенческие: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.



🔥 ТОП ВОПРОСОВ С СОБЕСОВ



🔒 База собесов | 🔒 База тестовых