Como Implementar O Padrão de Projeto Adapter em Python

Este artigo tem por finalidade apresentar a definição, uso e melhores práticas do padrão de projeto Adapter em Python, a fim de que possamos saber quando e porque utilizá-lo corretamente.

adapter em python

Série Design Patterns em Python

Antes de mais nada, eu gostaria de deixar aqui o repositório no github que eu criei com os exemplos dessa série.

Portanto, se por acaso você quiser conferir todo o código que estamos escrevendo neste artigo, basta acessar o link:

O Que É O Adapter?

Adapter Design Pattern UML

A sample UML class diagram for the adapter design pattern




O padrão de projeto Adapter faz parte dos 23 design patterns contidos no famoso livro do gang of four. O objetivo do design pattern Adapter é permitir a comunicação entre classes que de outra maneira não seria possível.

Você por acaso já precisou de um adaptador para ligar o seu notebook na tomada?

tomadas

Então, o Adapter foi pensado exatamente para isso, para adaptar o uso de algo existente, que ficaria difícil de utilizar caso não tivéssemos um adaptador para conectar as duas partes.

Os Participantes

O padrão Adapter possui quatro participantes durante a sua construção e utilização.




Adapter em Python – O Alvo

O Target é a interface de comunicação que define como o objeto se comunica.

Adapter em Python – O Adaptador

O Adapter, ou adaptador é a classe que permitirá que as duas classes independentes se comuniquem.

Adapter em Python – O Adaptado

O Adaptee, ou o adaptado é quem já existia fazendo algo que não era utilizável por outras classes.




O Cliente

O Client, ou cliente, é quem utilizará o adaptador para pode utilizar a classe adaptada, mesmo não sabendo se comunicar com ela.

Colocando a Adaptação para Funcionar

E para testarmos, basta executar o código:

Carregando Celulares

Agora vamos para um exemplo um pouco melhor, nós vamos utilizar diferentes cabos para carregar diferentes celulares.

Conclusão

O Adapter também é um padrão de projeto muito interessante.

Eu não vejo o padrão Adapter em Python sendo muito utilizado, talvez pelo mesmo motivo que eu venho falando ao longo desta série. O Python oferece muitos recursos que as linguagens que inspiraram os padrões ofereciam na época.

Porém, como sempre, conhecer os padrões é muito importante para nos tornarmos programadores melhores, ainda mais que a vida nem sempre é da maneira que queremos, e as vezes caímos em algum projeto que utiliza Java ou .Net, e ai já viu né?! 😀

Se ficou alguma dúvida, sugestão ou crítica, não exite em comentar abaixo!

Um grande abraço




Leave a Reply