Sobes.tech
Junior

O que é o padrão Bridge?

sobes.tech IA

Resposta da IA

O padrão Bridge (Ponte) é um padrão estrutural de design que separa a abstração da sua implementação, permitindo alterá-las de forma independente.

A ideia é separar a interface (abstração) da implementação concreta, ligando-as através de um objeto ponte. Isto é útil quando é necessário suportar várias opções de implementação e abstrações sem um crescimento explosivo de classes.

Exemplo no iOS:

Vamos supor que temos diferentes tipos de botões (abstração) e diferentes estilos de exibição (implementação). Em vez de criar classes para cada combinação, criamos uma interface de botão que usa um objeto de estilo:

protocol ButtonStyle {
    func drawButton()
}

class DarkStyle: ButtonStyle {
    func drawButton() {
        print("Desenhar botão em estilo escuro")
    }
}

class LightStyle: ButtonStyle {
    func drawButton() {
        print("Desenhar botão em estilo claro")
    }
}

class Button {
    private let style: ButtonStyle
    init(style: ButtonStyle) {
        self.style = style
    }
    func draw() {
        style.drawButton()
    }
}

let darkButton = Button(style: DarkStyle())
darkButton.draw()  // Desenhar botão em estilo escuro

Desta forma, podemos alterar estilos e tipos de botões de forma independente.