Паттерн Bridge — это подходящее решение для разделения абстракции от реализации. Он обеспечивает разделение ответственности, позволяя тебе независимо изменять абстракцию и реализацию.
Паттерн Bridge создаёт две отдельные иерархии:
Это предотвращает жёсткие иерархии классов и позволяет гибко комбинировать разные абстракции с разными реализациями.
Рассмотрим сценарий с фигурами и цветами:
Shape → Square, CircleColor → Red, Black, Green, WhiteВместо создания отдельного класса для каждой комбинации (RedSquare, BlackSquare, RedCircle и т.д.), паттерн Bridge позволяет тебе:
Shape как абстракцию со ссылкой на цветShape (абстракция)
├── Square
└── Circle
Color (реализация)
├── Red
├── Black
├── Green
└── White
Используя композицию вместо наследования, паттерн Bridge обеспечивает превосходную гибкость по сравнению с традиционными иерархическими подходами.
Паттерн Bridge создает две отдельные иерархии: одну для абстракций и одну для реализаций, позволяя им изменяться независимо друг от друга без взаимного влияния.
Новый — ещё не проверен сообществом
Вы