SlideShare uma empresa Scribd logo
DESIGN PATTERNS
  Adapter e Decorator




   Eduardo Lira, Éwerton Araújo, Murilo Vasconcelos e Paulo Costa
ADAPTER




   2
ADAPTER

• Motivação

  • Algumas  vezes desejamos reutilizar classes ou mesmo
   bibliotecas porém sua interface é incompatível com a interface
   esperada pelo sistema que está sendo desenvolvido

  • Pode ser que não tenhamos os fontes da biblioteca para realizar
   alterações ou é desejável que não tenhamos que modificar o
   seu código para cada aplicação construída

                                3
ADAPTER

• Objetivos

  • Converter a interface de classes no intuito de torná-las
   compatíveis com a arquitetura do sistema que está sendo
   desenvolvido

  • Reutilizar
             classes existentes ou componentes antigos em
   novos sistemas ou em componentes de outras versões


                              4
ADAPTER
•O  padrão Adapter consiste em criar uma camada intermediária
 que traduz ou mapeia componentes antigos ou que não estão
 conforme a arquitetura do sistema para componentes que
 oferecem interfaces necessária pelo sistema




•A classe cliente chama métodos no objeto Adapter que as
 redireciona para o componente legado

• Pode   ser implementado tanto com agregação como por herança
                                5
ADAPTER

• Object Adapter




                      6
ADAPTER

• Class Adapter




                     7
ADAPTER

• Classe   legada




                       8
ADAPTER

• Interface   utilizada pelo sistema e o Adapter




                                  9
ADAPTER

• Classe   cliente




                        10
DECORATOR




    11
DECORATOR

• Motivação

  • Frequentementeé necessário adicionar comportamentos a
   objetos em tempo de execução

  • Herançanão é possível pois é estática e aplica a toda a classe e
   não só ao objeto

  • Osnovos comportamentos só afetam um objeto da classe e
   não todos os objetos de uma classe

                                 12
DECORATOR

• Decorator   é um padrão de projeto estrutural

•O  seu objetivo é designar dinamicamente responsabilidades
 adicionais a um objeto

• Projetado
          de forma que múltiplos decoradores podem ser
 empilhados, cada um adicionando novas responsabilidades

• Evita
      que para cada responsabilidade nova, uma subclasse seja
 criada, o que resultaria em uma grande hierarquia de classes

                               13
DECORATOR

• Estrutura:




                   14
DECORATOR

• Exemplo:

  • Uma  cafeteria que oferece várias composições de cafezinho
   diferentes

  • Expresso, expressocom leite, expresso com caramelo, expresso
   com leite e caramelo, expresso com mocha, expresso com
   mocha e caramelo, dark roast, dark roast com leite, dark roast
   com leite e caramelo, ....

                                15
DECORATOR

• Herança:




                 16
DECORATOR

• Herança:

 Claramente inviável




                           16
DECORATOR

• Solução:




                 17
DECORATOR

• Funcionamento:




•O   mesmo de uma classe DarkRoastWithMochaAndWhip
                          18
ADAPTER E DECORATOR

• São   padrões de projeto estruturais

•O  padrão Adapter altera a interface de uma classe afim de
 torná-la compatível com a arquitetura do sistema

•O  padrão Decorator não altera a interface das classes, apenas
 adiciona responsabilidades (comportamentos) em tempo de
 execução

•O padrão Decorator é mais transparente, com isso, suporta
 composição múltipla, o que não é possível no Adapter
                                19
ADAPTER E DECORATOR

• Apresentam   a mesma desvantagem:

 • Performance

   • No  caso do Adapter, é preciso adicionar uma classe que faz
     o intermédio das chamadas

   • Jáno Decorator, além de cada classe de decoração precisar
     ter uma referência do objeto concreto, cada chamada é
     recursivamente feita através dos decoradores até chegar
     no objeto concreto
                             20
ADAPTER E DECORATOR



        Dúvidas?




          21

Mais conteúdo relacionado

Mais procurados

Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
Rodrigo Caetano
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Cesar Rocha
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
alexmacedo
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Glaucio Scheibel
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
Ryan Padilha
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
Ryan Padilha
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
Luis Ferreira
 
UML
UMLUML
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
Eduardo Nicola F. Zagari
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
Grupo Treinar
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
elliando dias
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
Paulo Carvalho
 
Padrão de Projetos singleton
Padrão de Projetos singletonPadrão de Projetos singleton
Padrão de Projetos singleton
Wendel Moreira
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
sauloroos01
 
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
Eduardo Bertolucci
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
Yan Justino
 

Mais procurados (20)

Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
UML
UMLUML
UML
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Padrão de Projetos singleton
Padrão de Projetos singletonPadrão de Projetos singleton
Padrão de Projetos singleton
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 

Destaque

Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
Murilo Adriano Vasconcelos
 
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Murilo Adriano Vasconcelos
 
Tópicos Avan
Tópicos AvanTópicos Avan
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Murilo Adriano Vasconcelos
 
Introdução ao Processamento de Imagens Digitais
Introdução ao Processamento de Imagens DigitaisIntrodução ao Processamento de Imagens Digitais
Introdução ao Processamento de Imagens Digitais
Murilo Adriano Vasconcelos
 
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Murilo Adriano Vasconcelos
 
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
Murilo Adriano Vasconcelos
 
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
Murilo Adriano Vasconcelos
 
Grafos e Árvores
Grafos e ÁrvoresGrafos e Árvores
Grafos e Árvores
Patrick Momoli
 

Destaque (9)

Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
Tópicos Avançados em Computabilidade - Teorema da Recursão e Decibilidade de ...
 
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
 
Tópicos Avan
Tópicos AvanTópicos Avan
Tópicos Avan
 
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
Treinamento Para Competições de Programação - All Pairs Shortest Paths - O Al...
 
Introdução ao Processamento de Imagens Digitais
Introdução ao Processamento de Imagens DigitaisIntrodução ao Processamento de Imagens Digitais
Introdução ao Processamento de Imagens Digitais
 
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
Treinamento Para competições de Programação do INF-UFG - Grafos Parte 1 - Tur...
 
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
Processamento de Imagens Digitais - Transformações de Intensidade, Filtragem ...
 
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
Introdução ao Processamento de Imagem Digital - Relacionamentos básicos entre...
 
Grafos e Árvores
Grafos e ÁrvoresGrafos e Árvores
Grafos e Árvores
 

Semelhante a Design Patterns - Adapter e Decorator

Padrões de projetos
Padrões de projetosPadrões de projetos
Padrões de projetos
Gustavo Souza
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
Alexsander Camargo
 
Refatorações
RefatoraçõesRefatorações
Refatorações
Altamir Benkenstein
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
Eduardo Nicola F. Zagari
 
Herança
HerançaHerança
Refatoração
RefatoraçãoRefatoração
Refatoração
Gerson Borges
 
Compartilhamento de código com Frameworks - CocoaHeads RJ
Compartilhamento de código com Frameworks - CocoaHeads RJCompartilhamento de código com Frameworks - CocoaHeads RJ
Compartilhamento de código com Frameworks - CocoaHeads RJ
Renan Protector
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
Elaine Cecília Gatto
 
Docker introducao a sitemas de conteiners docker
Docker introducao a sitemas de conteiners dockerDocker introducao a sitemas de conteiners docker
Docker introducao a sitemas de conteiners docker
HerbethLucas1
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
tchandy
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
Alex Pinheiro Das Graças
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
brunoaalves
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
eduardohabib
 
Code Smells
Code SmellsCode Smells
Code Smells
Alan Willms
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
Eduardo Carvalho
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Mario Guedes
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
ssuser648be2
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
Jhordam Siqueira
 
10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf
FernandoHenriquedaSi16
 
Apresentação TCC-pós
Apresentação TCC-pósApresentação TCC-pós
Apresentação TCC-pós
thiago.lenz
 

Semelhante a Design Patterns - Adapter e Decorator (20)

Padrões de projetos
Padrões de projetosPadrões de projetos
Padrões de projetos
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
 
Refatorações
RefatoraçõesRefatorações
Refatorações
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Herança
HerançaHerança
Herança
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
Compartilhamento de código com Frameworks - CocoaHeads RJ
Compartilhamento de código com Frameworks - CocoaHeads RJCompartilhamento de código com Frameworks - CocoaHeads RJ
Compartilhamento de código com Frameworks - CocoaHeads RJ
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Docker introducao a sitemas de conteiners docker
Docker introducao a sitemas de conteiners dockerDocker introducao a sitemas de conteiners docker
Docker introducao a sitemas de conteiners docker
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf
 
Apresentação TCC-pós
Apresentação TCC-pósApresentação TCC-pós
Apresentação TCC-pós
 

Último

BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
Escola Municipal Jesus Cristo
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
Manuais Formação
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
Mary Alvarenga
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
the_story_garden_5_SB_with_activities.pdf
the_story_garden_5_SB_with_activities.pdfthe_story_garden_5_SB_with_activities.pdf
the_story_garden_5_SB_with_activities.pdf
CarinaSoto12
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
analuisasesso
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
AdrianoMontagna1
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 

Último (20)

BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
 
UFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdfUFCD_10949_Lojas e-commerce no-code_índice.pdf
UFCD_10949_Lojas e-commerce no-code_índice.pdf
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
the_story_garden_5_SB_with_activities.pdf
the_story_garden_5_SB_with_activities.pdfthe_story_garden_5_SB_with_activities.pdf
the_story_garden_5_SB_with_activities.pdf
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...“A classe operária vai ao paraíso  os modos de produzir e trabalhar ao longo ...
“A classe operária vai ao paraíso os modos de produzir e trabalhar ao longo ...
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 

Design Patterns - Adapter e Decorator

  • 1. DESIGN PATTERNS Adapter e Decorator Eduardo Lira, Éwerton Araújo, Murilo Vasconcelos e Paulo Costa
  • 3. ADAPTER • Motivação • Algumas vezes desejamos reutilizar classes ou mesmo bibliotecas porém sua interface é incompatível com a interface esperada pelo sistema que está sendo desenvolvido • Pode ser que não tenhamos os fontes da biblioteca para realizar alterações ou é desejável que não tenhamos que modificar o seu código para cada aplicação construída 3
  • 4. ADAPTER • Objetivos • Converter a interface de classes no intuito de torná-las compatíveis com a arquitetura do sistema que está sendo desenvolvido • Reutilizar classes existentes ou componentes antigos em novos sistemas ou em componentes de outras versões 4
  • 5. ADAPTER •O padrão Adapter consiste em criar uma camada intermediária que traduz ou mapeia componentes antigos ou que não estão conforme a arquitetura do sistema para componentes que oferecem interfaces necessária pelo sistema •A classe cliente chama métodos no objeto Adapter que as redireciona para o componente legado • Pode ser implementado tanto com agregação como por herança 5
  • 9. ADAPTER • Interface utilizada pelo sistema e o Adapter 9
  • 10. ADAPTER • Classe cliente 10
  • 11. DECORATOR 11
  • 12. DECORATOR • Motivação • Frequentementeé necessário adicionar comportamentos a objetos em tempo de execução • Herançanão é possível pois é estática e aplica a toda a classe e não só ao objeto • Osnovos comportamentos só afetam um objeto da classe e não todos os objetos de uma classe 12
  • 13. DECORATOR • Decorator é um padrão de projeto estrutural •O seu objetivo é designar dinamicamente responsabilidades adicionais a um objeto • Projetado de forma que múltiplos decoradores podem ser empilhados, cada um adicionando novas responsabilidades • Evita que para cada responsabilidade nova, uma subclasse seja criada, o que resultaria em uma grande hierarquia de classes 13
  • 15. DECORATOR • Exemplo: • Uma cafeteria que oferece várias composições de cafezinho diferentes • Expresso, expressocom leite, expresso com caramelo, expresso com leite e caramelo, expresso com mocha, expresso com mocha e caramelo, dark roast, dark roast com leite, dark roast com leite e caramelo, .... 15
  • 19. DECORATOR • Funcionamento: •O mesmo de uma classe DarkRoastWithMochaAndWhip 18
  • 20. ADAPTER E DECORATOR • São padrões de projeto estruturais •O padrão Adapter altera a interface de uma classe afim de torná-la compatível com a arquitetura do sistema •O padrão Decorator não altera a interface das classes, apenas adiciona responsabilidades (comportamentos) em tempo de execução •O padrão Decorator é mais transparente, com isso, suporta composição múltipla, o que não é possível no Adapter 19
  • 21. ADAPTER E DECORATOR • Apresentam a mesma desvantagem: • Performance • No caso do Adapter, é preciso adicionar uma classe que faz o intermédio das chamadas • Jáno Decorator, além de cada classe de decoração precisar ter uma referência do objeto concreto, cada chamada é recursivamente feita através dos decoradores até chegar no objeto concreto 20
  • 22. ADAPTER E DECORATOR Dúvidas? 21

Notas do Editor

  1. \n
  2. \n
  3. Falar algo!\n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. Falar algo!\n
  13. Falar algo!\n
  14. Falar algo!\n
  15. Falar algo!\n
  16. Falar algo!\n
  17. Falar algo!\n
  18. Falar algo!\n
  19. Falar algo!\n
  20. Falar algo!\n
  21. Falar algo!\n
  22. Falar algo!\n