Padrão Bridge Projeto de Sistemas de Software(PSS) Marcio D. M. Santos.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Carlos Roberto Marques Junior
Padrão de Projeto Iterator
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Chain of Responsibility
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrão de Projeto Interpreter
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Factory Method Projeto de Sistemas de Software
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
1 Builder Padrões de projeto Projeto de Sistemas de Software Aleksander Bruno Gadelha Setembro, 2008.
Projeto de Sistemas de Software Hazel, Juliana e Luana
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto
Strategy Projeto de Sistemas de Software
Chain of Responsibility
Padrões de Projeto Prototype.
Abstract Factory – Gustavo Lopes Mourad.
Padrão de Projeto Iterator
Padrão de Projeto Composite
Padrão Abstract Factory
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Chain of Responsibility
Animador para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Lucena.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Projeto de Sistemas de Software(PSS)
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Design Patterns Bridge
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Classes Abstratas e Interfaces.
PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho.
INTERFACE A DAPTER F AÇADE C OMPOSITE B RIDGE M ARKER.
1 Padrões de Software Padrões GoF (Parte 2) Eduardo Bezerra Outubro/2005.
POO II JEAN CARLO MENDES
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Interfaces POO Avançado.
Classes Abstratas e Interface
AULA 04 - POO. História 02 (usar interface): De acordo com o tipo do cliente implementar um método para dar desconto. Nesse processo está envolvido o.
Classes Abstratas e Interfaces GX – Aula05 1.
Padrões de Projeto Abstract Factory.
POO - II PROF.: JEAN CARLO MENDES
Organização do Ambiente de Execução para Linguagens OO Objeto: –Grupo de variáveis de instância, aos quais métodos de instância estão atachados; Variável.
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
1 Padrões: Bridge (p. 151) Objetivo: separar uma abstração de sua implementação Sinônimos: Handle/Body.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF-II: Iterator e Composite Professores Eduardo Bezerra –
Jobson Ronan Padrões GoF Jobson Ronan
2 – Revisão de Programação Orientada a Objetos
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
Aula 7 – Padrão Abstract Factory
GoF Patterns Roni Fabio Banaszewski UTFPR – Universidade Tecnológica Federal do Paraná.
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Jean Carlo mendes
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Java: Interfaces Alcides Calsavara.
Elisabeth Suescún Leandra Mara da Silva
Transcrição da apresentação:

Padrão Bridge Projeto de Sistemas de Software(PSS) Marcio D. M. Santos

Propósito Desacoplar a Abstração da Implementação © LES/PUC-Rio

Motivação Algumas vezes uma abstração pode ter várias implementações; Permitir que um programa rode em outra plataforma;

Aplicabilidade Deseja-se evitar acoplamento permanente entre a abstração e a implementação. Comumente usando em sistemas web –Cliente > Facade(Abstração)> Dao(Implementação) © LES/PUC-Rio

Aplicabilidade Softwares com múltiplas apresentações –Interface Texto –Interface Gráfica Exemplo –YAST –Borland C++

Estrutura © LES/PUC-Rio

Participantes Abstraction –Define a interface da abstração –Mantém uma referência para a implementação RefinedAbstraction –Estende a abstração Implementor –Define a interface para a implementação, que não possui nenhuma relação com a abstração ConcreteImplementor –Define a implementação © LES/PUC-Rio

Colaborações © LES/PUC-Rio A abstração invoca os métodos da interface da implementação

Conseqüências Desacoplamento entre a Abstração e a Implementação Melhora a extensibilidade Esconde detalhes de implementação do cliente © LES/PUC-Rio

Paterns relacionados Adapter Abstract Factory © LES/PUC-Rio

Exemplo /** "Implementor" */ interface DrawingAPI { public void drawCircle(double x, double y, double radius); } © LES/PUC-Rio

Exemplo /** "ConcreteImplementor" 1/2 */ class DrawingAPI1 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius); } © LES/PUC-Rio

Exemplo class DrawingAPI2 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius); } © LES/PUC-Rio

Exemplo /** "Abstraction" */ interface Shape { public void draw(); // low-level public void resizeByPercentage(double pct); // high-level } © LES/PUC-Rio

Exemplo /** "Refined Abstraction" */ class CircleShape implements Shape { private double x, y, radius; private DrawingAPI drawingAPI; public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) { this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI; } // low-level i.e. Implementation specific public void draw() { drawingAPI.drawCircle(x, y, radius); } // high-level i.e. Abstraction specific public void resizeByPercentage(double pct) { radius *= pct; } } © LES/PUC-Rio