Назад к вопросам
Junior
74
Что такое паттерн Bridge
Компании, где спрашивали
bip.ru
Ответ от нейросети
sobes.tech AI
Паттерн Bridge (Мост) — это структурный шаблон проектирования, который разделяет абстракцию и её реализацию, позволяя изменять их независимо друг от друга.
Идея в том, чтобы отделить интерфейс (абстракцию) от конкретной реализации, связав их через объект-мост. Это полезно, когда нужно поддерживать несколько вариантов реализации и абстракций без взрывного роста классов.
Пример на iOS:
Представим, что у нас есть разные виды кнопок (абстракция) и разные стили отображения (реализация). Вместо создания классов для каждой комбинации, мы создаём интерфейс кнопки, который использует объект стиля:
protocol ButtonStyle {
func drawButton()
}
class DarkStyle: ButtonStyle {
func drawButton() {
print("Рисуем кнопку в тёмном стиле")
}
}
class LightStyle: ButtonStyle {
func drawButton() {
print("Рисуем кнопку в светлом стиле")
}
}
class Button {
private let style: ButtonStyle
init(style: ButtonStyle) {
self.style = style
}
func draw() {
style.drawButton()
}
}
let darkButton = Button(style: DarkStyle())
darkButton.draw() // Рисуем кнопку в тёмном стиле
Так мы можем менять стили и типы кнопок независимо.