Padrão Bridger

Preview:

DESCRIPTION

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

Citation preview

PADÃO DE PROJETO BRIDGE

GoF – Estrutural de Objetos

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

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.

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;

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.

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.

Estrutura Oficial

Abstraction

operation ()

Implementor

operationImpl()

RefinedAbstractionConcreteImplementorA

operationImpl()

ConcreteImplementorB

operationImpl ()

Client << usa >>

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.

Diagrama de Classe

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.

Diagrama de Classe Bluej

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.

Implementação Código Classe Abstrata

ImplMotorEletrico por Herança

Criando Objeto MotorEletrico

Testando Objeto

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.

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.