Padrão Bridge (Handle/Body)

Slides:



Advertisements
Apresentações semelhantes
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Advertisements

Carlos Roberto Marques Junior
Padrão de Projeto Iterator
PADRÕES DE PROJETO..
UML no CICLO de DESENVOLVIMENTO
UML Modelando um sistema.
UML Visões – Parte 2.
Diagrama de Classes continuação.
Design Patterns Builder Pattern
Projeto de Sistemas de Software
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Elizabeth Suescún Monsalve
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(PSS) Baldoino F. dos S. Neto
Carlos R. M. Junior Eduardo Motta
Strategy Projeto de Sistemas de Software
Chain of Responsibility
Padrões de Projeto Prototype.
Metodologias Equipe do Curso de ES para SMA
Abstract Factory – Gustavo Lopes Mourad.
Linguagens de Modelagem (cont.) (IV)
Kleinner Farias e Raphael do Vale
Padrão de Projeto Composite
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Projeto de Sistemas de Software Leandra Mara da Silva
Padrão Abstract Factory
Arquitetura de Sistemas Operacionais
Modelo de Arquitetura Diagrama de Componentes
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Chain of Responsibility
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Projeto de Sistemas de Software(PSS)
Chain of Responsibility
Tópicos de Sistemas de Informação A
Análise e Projeto de Sistemas
Design Patterns Bridge
Marcio de Carvalho Victorino
PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho.
SISTEMAS OPERACIONAIS I
 É uma construção de agrupamento que permite a você pegar qualquer construção na UML e agrupar seus elementos em unidades de nível alto.  Representa.
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.
Padrões de Interação com o Usuário
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Integração de Ferramentas CASE
Padrões de Projeto Abstract Factory.
SISTEMAS OPERACIONAIS MACH EPOS
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 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
1 Padrões: Bridge (p. 151) Objetivo: separar uma abstração de sua implementação Sinônimos: Handle/Body.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Jobson Ronan Padrões GoF Jobson Ronan
Sistemas de Informação Prof Paulo Germano. Sistemas de Informação Um sistema de informação é um conjunto de componentes relacionados que recebe, trata,
Análise e Projeto de Sistemas
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Padrão Bridge Projeto de Sistemas de Software(PSS) Marcio D. M. Santos.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Diagrama de Classes Herança Dependências.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
VIRTUALIZAÇÃO - INTRODUÇÃO Na área de TI; O que é sistema legado? É o termo utilizado em referência aos sistemas computacionais de uma organização que,
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Elisabeth Suescún Leandra Mara da Silva
Transcrição da apresentação:

Padrão Bridge (Handle/Body) Design Patterns Padrão Bridge (Handle/Body) Paulo Roberto França

Motivação Visualizador de imagens. (Diferentes formatos) Cada sistema operacional exibe a imagem de uma forma diferente. È inconveniente a extensão da abstração imagem para diferentes formatos em diferentes plataformas.

Motivação Resultado: Proliferação de classes

Motivação Formato de uma imagem (estrutura e representação) A forma como a imagem é exibida varia entre Sistemas operacionais, porém a sua estrutura é a mesma. Windows pode mostrar uma imagem (bitmap) sem conhecimento de seu formato original (BMP, JPG etc...) A representação e a estrutura de um formato de imagem são aspectos diferentes. Devem variar de forma independente de acordo com fatores como: Sistema operacional, hardware etc.. © LES/PUC-Rio

Motivação A Solução O padrão Bridge permite diferentes hierarquias de classes para as abstrações e suas implementações. Podem Variar de forma independente São criadas duas hierarquias de classes relacionadas: a hierarquia de estrutura do formato de imagens e a de representação nas plataformas suportadas. O relacionamento entre as interfaces é a ponte que desacopla a interface da implementação © LES/PUC-Rio

Motivação

Bridge Classificação Propósito Estrutural de Objeto Permitir o desacoplamento de uma abstração de sua implementação Assim ambos podem variar de forma independente Definir classes abstratas para a interface de uma abstração. Definir subclasses concretas para a implementação. Abordagem não é suficientemente flexível. Herança = ligação permanente. Difícil manter a independência © LES/PUC-Rio

Aplicabilidade Evitar vínculo permanente entre abstração e implementação Selecionar ou trocar a implementação dinamicamente Abstração e implementação devem ser extensíveis Cliente não deve ser recompilado no caso de mudanças na implementação. Ocultar a implementação (C++, header apenas da abstração) Evitar proliferação de classes Ocultar do cliente o compartilhamento da implementação entre vários objetos. EX: objetos compartilham a mesma representação de uma string. Padrão bridge coloca a abstração e a implementação em hierarquia de classes separadas. © LES/PUC-Rio

Estrutura e participantes © LES/PUC-Rio

Colaborações Existe uma “ponte” entre a abstração e a implementação. Abstraction repassa as solicitações dos clientes para o seu objeto Implementor © LES/PUC-Rio

Consequências Configurar a implementação em tempo de execução Mudanças na implementação não torna implicam recompilação da classe Abstraction e seus clientes. Melhorias na estrutura do sistema, encorajando o uso o de camadas; a parte de alto nível somente tem que ter conhecimento de Abstraction e Implementor Extensibilidade: pode-se estender as hierarquias de Abstraction e Implementor independentemente Detalhes de implementação são ocultados do cliente © LES/PUC-Rio

Implementação Diagrama de Classe Client: sera nossa tela o interfase grafica para o usuario © LES/PUC-Rio

Implementação Diagrama de Sequência Abstration: define uma interfase abstrata. mantém uma referencia ao objeto tipo implementor © LES/PUC-Rio

Implementação

Implementação RedefineAbstraction estende a interface definida pela abstração © LES/PUC-Rio

Implementação Implementor: define a interface para a implementação de classes, a qual não * tem que corresponder exatamente com a interfase de Abstraction; Alem disso, * as dois interfases podem ser bastante diferentes. geramente a interfase implementor * prover solo operações primitivas, e Abstraction define operações de alto nível * baseadas em estas primitivas. © LES/PUC-Rio

Implementação ConcreteImplementor: Implementa a interface de Implementor e define * sua implementação concreta. * na grafica ou seja na presentação temos dois ConcreteImplementorA e ConcreteImplementorB, mais * pode ser uma sozinha. © LES/PUC-Rio

Implementação

Pradrões Relacionados Abstract Factory Criar e configurar uma bridge Adapter Usado em sistema já projetados Bridge é usado no projeto desde o inicio

F I M