DEV Community

Michel Moreira
Michel Moreira

Posted on

Padrão Bridge em Python

O Bridge é um padrão de projeto estrutural, ele permite a divisão de uma grande classe (ou conjuntos de classes acopladas) em duas hierarquias (abstração e implementação) que podem ser desenvolvidas de maneira independente.

Exemplo de código em Python

class Abstraction:
    def __init__(self, implementation: Implementation) -> None:
        self.implementation = implementation

    def operation(self) -> str:
        return (f"Abstraction: Base operation with:\n"
                f"{self.implementation.operation_implementation()}")


class ExtendedAbstraction(Abstraction):

    def operation(self) -> str:
        return (f"ExtendedAbstraction: Extended operation with:\n"
                f"{self.implementation.operation_implementation()}")


class Implementation(ABC):

    @abstractmethod
    def operation_implementation(self) -> str:
        pass


class ConcreteImplementationA(Implementation):
    def operation_implementation(self) -> str:
        return "ConcreteImplementationA: Here's the result on the platform A."


class ConcreteImplementationB(Implementation):
    def operation_implementation(self) -> str:
        return "ConcreteImplementationB: Here's the result on the platform B."
Enter fullscreen mode Exit fullscreen mode

A classe Abstraction define a interface de controle, ela contém uma referência a um objeto Implementation e delega todo o trabalho para ele. Com a classe ExtendedAbstraction você consegue extender a classe Abstraction sem precisar mudar o código das implementações.
A classe Implementation vai ser a interface utilizada para criar os objetos onde estará a lógica a ser executada.

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)