2. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO
AMAZONAS
CURSO DE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO
DE SISTEMAS
PADÃO DE PROJETO BRIDGE
Prof.: Jorge Abílio
Aluno: Sérgio Ademir Rocha do Carmo
Setembro /2015
3. Padrão Estrutural Bridge
Preocupa – se com a forma como classes e objetos são compostos
para formar estruturas maiores, classes utilizam herança para compor
interfaces ou implementações. O resultado esperado é a combinação das
propriedades de suas classes ancestrais. Útil para fazer bibliotecas de
classes desenvolvidas independentemente a trabalharem juntas.
4. Padrão de Projeto Bridge
Intenção
Desacoplar uma abstração da sua implementação, de modo que as duas possam variar
independentemente.
Conhecido
Handle / Body (movimento circular da forma )
Motivação
Separar uma abstração de sua representação, de forma que ambos possam variar e
produzir tipos de objetos diferentes.
Aplicabilidade
Evitar um vínculo permanente entre uma abstração e sua implementação.
Implementação deve ser selecionada ou alterada em tempo de execução;
Permite combinar as diferentes abstrações e implementações e estendê-las
independentemente;
5. VANTAGENS
Detalhes de implementação totalmente inacessíveis aos clientes.
Eliminação de dependências em tempo de compilação das implementações.
Implementação de abstração pode ser configurada em tempo de execução.
Permite que hierarquias de abstrações (sub-classes de MotorElétrico ou
MotorHidrogênio ) e hierarquias de implementações variem de forma
Independente de diversos tipos de forma, ou seja, no problema proposto ligar,
acelerar e desligar diversos tipos de motores. Por diversos elementos de
motores
diferentes e corresponder a diversas bibliotecas distintas.
6. Estrutura
Entender o que é abstração e o que é uma implementação. Interpretar
a abstração como sendo a interface ou classe abstrata e as
implementações como classes concretas que implementam a
interface ou estendem a classe abstrata.
8. Problema a Ser Resolvido
Motor ElétricoMotor a Hidrogênio
Criar um sistema para Ligar, Acelerar e Desligar um motor elétricos e outro
motor hidrogênio. Eu tenho um classe abstrata chamada MOTOR. Eu posso
ligar , acelerar e desligar. Vamos supor que o comportamento de ligar,
acelerar e desligar desses motores sejam totalmente diferentes um do outro.
Então podemos resolver isso através de herança com baixo acoplamento.
Faço MotorEletrico e Motor Explosão herdar da classe Motor e Implemento
os métodos de cada motor.
10. Os personagens desse padrão são:
Os personagens desse padrão são:
Abstraction (Motor)
Define a interface de um determinado tipo de objeto.
RefinedAbstraction (MotorElétrico, MotorHidrogênio)
Uma implementação particular do Abstraction que delega o
Implementador a realização de determindas tarefas.
Implementor (Implementador classe concreta ImplMotorEletrico)
Define a interface dos objetos que serão acionados pelos Abstractions.
ConcreteImplementor (classe concreta, ImplMotorEletrico,
ImplMotorHidrogenio) uma implementação específica do Implementor
Client
Interage com as Abstractions.
12. Implementação Código Classe Mãe
A implementação do Padrão Bridge ilustra a Ponte entre a classe abstrata
Motor, MotorElétrico, MotorHidrogênio a através de interface
Implementador, ImplMotorEletrico, ImplMotorHidrogenio. Não existe
necessária dependência entre elas.
17. Conclusão
O padrão Bridge portanto, propõe uma solução para o problema
proposto de forma lógica com uma classe abstrata (Motor).
Dividindo melhor as responsabilidades, nas Implementações lógicas dos
ImplMotorEletrico e ImplMotorHidrogenio, para ligar, acelerar e
desligar criando objetos diferentes para cada motor em tempo de
execução.
Assim separa-se nesse problema a abstração de sua representação onde
a forma preocupa-se como classes e objetos são compostos para formar
estruturas maiores com baixo acoplamento.
18. REFERÊNCIAS
GAMMA, Erich.et.al. Padrão de Projeto Soluções Reutilizáveis de Software Orientado a
Objetos.5.ed. Porto Alegre: Bookman. 2000.
Laboratório Java com Testes, JFS e Design Patterns. Disponivel em:<https://www.caelum.com.br>.
Acesso em: 15/09/2015.
BRIZENO, Marcos. Design Patterns. Disponivel em:
<https://brizeno.wordpress.com/2011/09/17/maonamassafactorymethod/>. Acesso em 11/08/2015.