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."
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)