DEV Community

Juarez Júnior
Juarez Júnior

Posted on

C# Design Pattern: Bridge (Portugues)

O padrão Bridge é usado quando você quer separar a parte de como algo é feito (a implementação) da parte que diz o que fazer (a abstração). Isso ajuda a combinar diferentes partes de forma flexível. Por exemplo, se você tem diferentes formas (como círculo e quadrado) e diferentes cores (como vermelho e azul), o Bridge permite combinar essas formas com essas cores sem precisar criar uma nova classe para cada combinação.

Exemplo de Código em C#:

// Interface para as cores
public interface ICor
{
    void AplicarCor();
}

// Implementação para a cor vermelha
public class Vermelho : ICor
{
    public void AplicarCor()
    {
        Console.WriteLine("Aplicando a cor vermelha.");
    }
}

// Implementação para a cor azul
public class Azul : ICor
{
    public void AplicarCor()
    {
        Console.WriteLine("Aplicando a cor azul.");
    }
}

// Abstração para as formas
public abstract class Forma
{
    protected ICor cor;

    protected Forma(ICor cor)
    {
        this.cor = cor;
    }

    public abstract void Desenhar();
}

// Implementação de um círculo
public class Circulo : Forma
{
    public Circulo(ICor cor) : base(cor) { }

    public override void Desenhar()
    {
        Console.WriteLine("Desenhando um círculo.");
        cor.AplicarCor();
    }
}

// Implementação de um quadrado
public class Quadrado : Forma
{
    public Quadrado(ICor cor) : base(cor) { }

    public override void Desenhar()
    {
        Console.WriteLine("Desenhando um quadrado.");
        cor.AplicarCor();
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Desenhando um círculo vermelho
        Forma circuloVermelho = new Circulo(new Vermelho());
        circuloVermelho.Desenhar();  // Saída: Desenhando um círculo. Aplicando a cor vermelha.

        // Desenhando um quadrado azul
        Forma quadradoAzul = new Quadrado(new Azul());
        quadradoAzul.Desenhar();  // Saída: Desenhando um quadrado. Aplicando a cor azul.
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

Neste exemplo, temos formas como Circulo e Quadrado e cores como Vermelho e Azul. O padrão Bridge separa a lógica de desenhar a forma da lógica de aplicar a cor. Assim, você pode desenhar um círculo ou quadrado com qualquer cor, sem precisar criar uma classe específica para cada combinação (por exemplo, “Círculo Vermelho” ou “Quadrado Azul”). O código cria um círculo vermelho e um quadrado azul.

Conclusão:

O padrão Bridge facilita o trabalho quando você precisa combinar diferentes tipos de formas e cores (ou outros tipos de atributos) sem precisar criar uma classe nova para cada combinação. Isso torna o código mais simples e fácil de manter.

Código fonte: GitHub

Top comments (0)