DEV Community

Michel Moreira
Michel Moreira

Posted on

Padrão Adapter em Python

O Adapter é um padrão de projeto estrutural, este provê uma interface unificada que torna possível que objetos com interfaces incompatíveis colaborem entre si.

Exemplo de código em Python

class Target:
    def request(self) -> str:
        return "Target: The default target's behavior."


class Adaptee:

    def specific_request(self) -> str:
        return ".eetpadA eht fo roivaheb laicepS"


class Adapter(Target, Adaptee):

    def request(self) -> str:
        return f"Adapter: (TRANSLATED) {self.specific_request()[::-1]}"


def client_code(target: "Target") -> None:

    print(target.request(), end="")
Enter fullscreen mode Exit fullscreen mode

A classe Target representa a interface do cliente, esta contém o protocolo que será utilizado por ele. A classe Adaptee representa o código que será adaptado, geralmente bibliotecas de terceiros, pela classe Adapter, esta será quem tornará possível que o cliente e a biblioteca adaptada consigam se comunicar sem dificuldade.

A implementação em Python não tem nenhuma particularidade em relação a implementação em Java.


Referências
Padrões de Projeto (Diogo Moreira, 2020)
Mergulho nos Padrões de Projeto - v2020-1.14 (Alexander Shvets, 2020)
Os códigos usados como exemplo foram retirados do livro Mergulho nos Padrões de Projeto.

Top comments (0)