Sobes.tech
Назад к вопросам
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()  // Рисуем кнопку в тёмном стиле

Так мы можем менять стили и типы кнопок независимо.