A Fábrica de Arquitetos XIII - Bridge Pattern



...

Fala galeros, tranquilo? Eu estou de buenas apesar de estar lotado de demanda, tive um tempinho e resolvi escrever mais um artigo da série “A Fábrica de Arquitetos”, dessa vez é um padrão que tive que usar recentemente em um projeto beeem legado.

Esse padrão não é muito utilizado, porém quando você trabalha com um alto nível de desacoplamento ele te ajuda a desafogar desse mar de código mal-feito.

 

 

O que é?

 

Frequência de uso: 2/5 – Baixo

O Bridge Pattern é um padrão da família dos estruturais no qual o objetivo é reduzir o acoplamento criando uma ponte entre 2 componentes.

Imagine o seguinte cenário, você está trabalhando em uma aplicação de loja virtual consideravelmente antiga, em determinado momento, na hora de realizar o pedido o cálculo de frete está acoplado, então você tem por exemplo 3 transportadoras e código delas está todo junto.

Isso é um grande problema pois caso haja alguma alteração na chamada de alguma transportadora você pode acabar quebrando todo o componente de frete.

Como o código da implementação é legado provavelmente refatorar ele seja um trabalho longo e pode ser que você não tenha tempo para isso, nesses cenários o bridge pattern pode nos ajudar criando uma ponte entre a implementação e a abstração.

Em resumo, nosso componente de Frete irá virar uma ponte de transferência de dados para o frete de cada transportadora.

Logo abaixo irei deixar o diagrama do padrão:

 

 

Show me the code!

 

Bom vamos então implementar o cenário acima na parte de cálculo de frete.

A primeira coisa que nós precisamos é criar a interface abstrata que nossa ponte irá receber.

 

IFeeType.cs

 

Beleza, com a nossa interface abstrata podemos criar nosso componente de frete que servirá como ponte.

 

Perfeito, note que recebemos via injeção de dependência uma instância da interface IFeeType, e nosso componente de frete chama o componente especializado servindo como ponte (bridge).

Agora criamos nossos componentes especializados de cada transportadora.

 

OBS: Criei os 3 no mesmo arquivo por questões de simplicidade, seria muito melhor criar um arquivo para componente.

OBS2: Como é um projeto de exemplo apenas simulei o cálculo do valor do frete com um valor aleatório.

 

Por fim vamos consumir nosso componente de frete!

 

Program.cs

 

O resultado da nossa execução

 

 

Conclusão

 

Hoje vimos o Bridge Pattern um padrão não muito utilizado, porém muito eficiente em cenários de grande acoplamento de código.

Espero que tenha ficado claro como ele pode nos ajudar no dia a dia!

Agradeço a atenção e bons estudos!!!!!

Caso precise entrar em contato, me mande uma mensagem aqui.

Baixe o projeto clicando aqui.

 

AVISO

Minha nova plataforma já está em construção! irá conter todos os recursos dessa plataforma, cursos pagos e gratuitos, treinamentos, mentorias e muito mais, caso queira ter acesso antecipado (gratuito) e ser um dos primeiros a testar me mande um email em lucas.eschechola@outlook.com, obrigado!