Design Patterns Bridge Bernardo Evangelho Miranda Guilherme Heringer João Gilberto
Propósito Colocar a implementação em um formato orientado a objeto. Além de encapsulamento, realizar isolamento. Propósito
Realizar hierarquia criando subclasses de uma classe abstrata base para aproveitar as facilidades da orientação a objeto na implementação, além de providenciar alternativas. Note que as implementações e a abstração não podem ser independentes. Exemplo: Motivação
Deseja-se que o cliente ignore as diferenças entre as composições dos objetos e suas individualidades. Os objetos serão tratados de forma uniforme. Deseja-se fazer o bind da implementação no momento de execução. Deseja-se compartilhar implementações entre múltiplos objetos. Aplicabilidade
Estrutura
Abstraction: define a interface abstrata e mantém a referência para Implementor. RefinedAbstraction: estende a interface definida pelo abstraction. Implementor: define a interface para as classes de implementação. ConcreteImplementor: implementa a interface Implementor. Participantes
Maior extensibilidade (pode estender a abstração e as hierarquias de implementação de forma independente). Ocultando detalhes dos clientes. Consequências
Código