Что такое Bridge?

Ответ

Разделяет абстракцию и реализацию так, чтобы они могли меняться независимо. Вместо множества подклассов (Shape+Color комбинации) - две иерархии: абстракция и реализация.

interface Renderer { public function renderCircle(float $r): string; }
class VectorRenderer implements Renderer { ... }
class RasterRenderer implements Renderer { ... }
abstract class Shape {
    public function __construct(protected Renderer $renderer) {}
}
class Circle extends Shape { ... }

Новые формы и новые способы отрисовки добавляются без взрывного роста классов.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.