Junior
44
0
questionbank

Какие паттерны проектирования вы знаете?

Answer from sobes.tech neural network

Порождающие:

  • Singleton: Гарантирует существование только одного экземпляра класса и предоставляет глобальную точку доступа к нему.
  • Factory Method: Определяет интерфейс для создания объекта, но позволяет подклассам решать, какой класс инстанцировать.
  • Abstract Factory: Предоставляет интерфейс для создания семейств связанных или зависимых объектов, не специфицируя их конкретные классы.
  • Builder: Разделяет конструирование сложного объекта на шаги, позволяя создавать различные представления объекта с использованием одного и того же процесса конструирования.
  • Prototype: Создает объекты, дублируя существующий экземпляр (прототип), вместо повторного выполнения процесса конструирования.

Структурные:

  • Adapter: Преобразует интерфейс одного класса в другой интерфейс, ожидаемый клиентами. Позволяет работать классам с несовместимыми интерфейсами.
  • Bridge: Отделяет абстракцию от ее реализации, позволяя им изменяться независимо.
  • Composite: Компонует объекты в древовидные структуры для представления иерархий «часть-целое». Позволяет клиентам единообразно работать с отдельными объектами и композициями объектов.
  • Decorator: Динамически добавляет новые обязанности к объекту, оборачивая его в специальный объект-декоратор.
  • Facade: Предоставляет унифицированный интерфейс к набору интерфейсов подсистемы. Определяет интерфейс более высокого уровня, который упрощает использование подсистемы.
  • Flyweight: Использует разделяемое состояние между множеством мелких объектов, чтобы уменьшить объем используемой памяти и увеличить производительность.
  • Proxy: Предоставляет заместитель объекта, управляющий доступом к оригинальному объекту.

Поведенческие:

  • Chain of Responsibility: Передает запрос по цепочке обработчиков. Каждый обработчик решает, обработать ли запрос или передать его следующему обработчику в цепочке.
  • Command: Инкапсулирует запрос как объект, позволяя параметризовать клиентов с различными запросами, ставить запросы в очередь или вести их логи.
  • Interpreter: Определяет грамматическое представление для языка и включает интерпретатор для интерпретации предложений в этом языке.
  • Iterator: Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.
  • Mediator: Определяет объекты, которые управляют взаимодействием между набором других объектов. Способствует слабой связанности, позволяя объектам взаимодействовать без явного обращения друг к другу.
  • Memento: Предоставляет возможность сохранения и восстановления внутреннего состояния объекта без нарушения инкапсуляции.
  • Observer: Определяет зависимость «один ко многим» между объектами, чтобы при изменении состояния одного объекта все зависимые от него объекты уведомлялись и автоматически обновлялись.
  • State: Позволяет объекту изменять свое по

Порождающие:

  • Singleton: Гарантирует существование только одного экземпляра класса и предоставляет глобальную точку доступа к нему.
  • Factory Method: Определяет интерфейс для создания объекта, но позволяет подклассам решать, какой класс инстанцировать.
  • Abstract Factory: Предоставляет интерфейс для создания семейств связанных или зависимых объектов, не специфицируя их конкретные классы.
  • Builder: Разделяет конструирование сложного объекта на шаги, позволяя создавать различные представления объекта с использованием одного и того же процесса конструирования.
  • Prototype: Создает объекты, дублируя существующий экземпляр (прототип), вместо повторного выполнения процесса конструирования.

Структурные:

  • Adapter: Преобразует интерфейс одного класса в другой интерфейс, ожидаемый клиентами. Позволяет работать классам с несовместимыми интерфейсами.
  • Bridge: Отделяет абстракцию от ее реализации, позволяя им изменяться независимо.
  • Composite: Компонует объекты в древовидные структуры для представления иерархий «часть-целое». Позволяет клиентам единообразно работать с отдельными объектами и композициями объектов.
  • Decorator: Динамически добавляет новые обязанности к объекту, оборачивая его в специальный объект-декоратор.
  • Facade: Предоставляет унифицированный интерфейс к набору интерфейсов подсистемы. Определяет интерфейс более высокого уровня, который упрощает использование подсистемы.
  • Flyweight: Использует разделяемое состояние между множеством мелких объектов, чтобы уменьшить объем используемой памяти и увеличить производительность.
  • Proxy: Предоставляет заместитель объекта, управляющий доступом к оригинальному объекту.

Поведенческие:

  • Chain of Responsibility: Передает запрос по цепочке обработчиков. Каждый обработчик решает, обработать ли запрос или передать его следующему обработчику в цепочке.
  • Command: Инкапсулирует запрос как объект, позволяя параметризовать клиентов с различными запросами, ставить запросы в очередь или вести их логи.
  • Interpreter: Определяет грамматическое представление для языка и включает интерпретатор для интерпретации предложений в этом языке.
  • Iterator: Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.
  • Mediator: Определяет объекты, которые управляют взаимодействием между набором других объектов. Способствует слабой связанности, позволяя объектам взаимодействовать без явного обращения друг к другу.
  • Memento: Предоставляет возможность сохранения и восстановления внутреннего состояния объекта без нарушения инкапсуляции.
  • Observer: Определяет зависимость «один ко многим» между объектами, чтобы при изменении состояния одного объекта все зависимые от него объекты уведомлялись и автоматически обновлялись.
  • State: Позволяет объекту изменять свое по

Register or sign in to get access to full answers for all questions from the question bank.

design-patternscreational-patternsstructural-patternsbehavioral-patternssoftware-architecturesystem-design