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.
}
}
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)