Your SlideShare is downloading. ×
Design Patterns - Adapter e Decorator
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Design Patterns - Adapter e Decorator

2,695
views

Published on

Slides sobre os padrões de projeto Adapter e Decorator com exemplos em C++ apresentados a turma de Projeto de Software do curso de Ciência da Computação da Universidade Federal de Goiás.

Slides sobre os padrões de projeto Adapter e Decorator com exemplos em C++ apresentados a turma de Projeto de Software do curso de Ciência da Computação da Universidade Federal de Goiás.


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,695
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
82
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • Falar algo!\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Falar algo!\n
  • Transcript

    • 1. DESIGN PATTERNS Adapter e Decorator Eduardo Lira, Éwerton Araújo, Murilo Vasconcelos e Paulo Costa
    • 2. ADAPTER 2
    • 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
    • 6. ADAPTER• Object Adapter 6
    • 7. ADAPTER• Class Adapter 7
    • 8. ADAPTER• Classe legada 8
    • 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
    • 14. DECORATOR• Estrutura: 14
    • 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
    • 16. DECORATOR• Herança: 16
    • 17. DECORATOR• Herança: Claramente inviável 16
    • 18. DECORATOR• Solução: 17
    • 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