padrão bridger

19
PADÃO DE PROJETO BRIDGE GoF – Estrutural de Objetos

Upload: sergio-ademir

Post on 07-Dec-2015

264 views

Category:

Documents


0 download

DESCRIPTION

Apresentação de complemento da diciplina Padrão de projetos em Tecnologia em Analise e Desenvolvimento de Sistemas -IFAM

TRANSCRIPT

Page 1: Padrão Bridger

PADÃO DE PROJETO BRIDGE

GoF – Estrutural de Objetos

Page 2: Padrão Bridger

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

Page 3: Padrão Bridger

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.

Page 4: Padrão Bridger

Padrão de Projeto Bridge

IntençãoDesacoplar uma abstração da sua implementação, de modo que as duas possam variarindependentemente.Conhecido Handle / Body (movimento circular da forma )MotivaçãoSeparar 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;

Page 5: Padrão Bridger

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.

Page 6: Padrão Bridger

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.

Page 7: Padrão Bridger

Estrutura Oficial

Abstraction

operation ()

Implementor

operationImpl()

RefinedAbstractionConcreteImplementorA

operationImpl()

ConcreteImplementorB

operationImpl ()

Client << usa >>

Page 8: Padrão Bridger

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.

Page 9: Padrão Bridger

Diagrama de Classe

Page 10: Padrão Bridger

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.

Page 11: Padrão Bridger

Diagrama de Classe Bluej

Page 12: Padrão Bridger

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.

Page 13: Padrão Bridger

Implementação Código Classe Abstrata

Page 14: Padrão Bridger

ImplMotorEletrico por Herança

Page 15: Padrão Bridger

Criando Objeto MotorEletrico

Page 16: Padrão Bridger

Testando Objeto

Page 17: Padrão Bridger

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.

Page 18: Padrão Bridger

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/mao na massa factory method/>. Acesso em 11/08/2015.

Page 19: Padrão Bridger