Padrões de projeto em Python

Adapter Pattern in Python

Aprenda Adapter Pattern in Python com um exemplo prático que pode editar e executar online.

O que é Adapter Pattern?

Aprenda Adapter Pattern in Python com um exemplo prático que pode editar e executar online.

Quando usar?

  • Resolver problemas recorrentes de design de objetos com estruturas comprovadas.
  • Desacoplar responsabilidades para facilitar a extensão e os testes do código.
  • Usar um vocabulário de design comum ao discutir arquitetura com a equipe.

Código de exemplo

Executar código →
main.py
class LegacyGateway:
    # Adapter: wrap an incompatible API with the expected interface.
    def make_payment(self, cents):
        return f"PAY {cents / 100:.2f}"


class PaymentAdapter:
    def __init__(self, gateway):
        self.gateway = gateway

    def pay(self, dollars):
        # Translate both the method name and amount format.
        return self.gateway.make_payment(round(dollars * 100))


gateway = PaymentAdapter(LegacyGateway())
print(gateway.pay(25))

Saída esperada

PAY 25.00

Como funciona

Este exemplo demonstra Adapter Pattern in Python. Altere os valores de entrada para explorar o código.

Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.

Exercícios práticos

Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.

  1. Substitua o domínio do exemplo preservando a estrutura do padrão.
  2. Compare o padrão com uma implementação mais simples e explique as diferenças.
  3. Escreva testes para cada participante antes de adicionar outra implementação.
Executar no IDE Python →