Вопросы с собеседований по PHP и ответы на них.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/5JWKxA
Для обратной связи: @proglibrary_feeedback_bot
Post #1384
456
❓ Расскажите о паттерне Bridge
Bridge — это структурный паттерн, который разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо друг от друга.
Простыми словами: вместо одной толстой иерархии наследования вы разбиваете её на две независимые — «что делать» и «как делать» — и связываете их композицией.
▪️ Когда использовать
— Есть две ортогональные оси изменения (тип × реализация)
— Хотите избежать «взрыва» подклассов
— Нужно переключать реализацию в runtime
▪️ Bridge vs Strategy
— Strategy: меняет один алгоритм внутри объекта
— Bridge: разделяет целые иерархии абстракции и реализации
▪️ Минус
Усложняет код, если оси изменения всего одна — тогда достаточно обычного полиморфизма.
Bridge — это структурный паттерн, который разделяет абстракцию и реализацию так, чтобы они могли изменяться независимо друг от друга.
Простыми словами: вместо одной толстой иерархии наследования вы разбиваете её на две независимые — «что делать» и «как делать» — и связываете их композицией.
▪️ Когда использовать
— Есть две ортогональные оси изменения (тип × реализация)
— Хотите избежать «взрыва» подклассов
— Нужно переключать реализацию в runtime
▪️ Bridge vs Strategy
— Strategy: меняет один алгоритм внутри объекта
— Bridge: разделяет целые иерархии абстракции и реализации
▪️ Минус
Усложняет код, если оси изменения всего одна — тогда достаточно обычного полиморфизма.
- 👍 1




