Padrões de Projeto Aula 12 – Padrão Adapter. PADRÃO ADAPTER Soluções simples para problemas reais! 2.

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

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto
Padrões de Projeto Adapter.
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Padrão Abstract Factory
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Adapter.
Introdução ao paradigma de programação: Orientado a Objetos
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Linguagem de Programação II
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Introdução a Programação Orientada a Objetos
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Linguagem técnica de programação I Java – REVISÃO
Curso de extensão em Desenvolvimento Web
Nazareno Andrade (baseado no material de Hyggo Almeida)
Desenvolvimento de Sistemas Orientados a Aspectos
GEJAVA IV SCJA – Certificação Sun java associado exame cx
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
ACESSO A BASE DE DADOS.
Um Framework Para Testes
Linguagens de Programação II Aula 04 – Entendendo Classes
Professora Lucélia Oliveira
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Orientação a Objetos Parte I
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
POO II JEAN CARLO MENDES
Decorator POO - Avançado.
Interfaces POO Avançado.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Generalização e herança Agregação e composição
Padrões de Projeto Abstract Factory.
Introdução a Programação Orientada a Objetos
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Modelo de Análise e Projeto
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
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ões: Composite (p. 163) Objetivo: compor objetos em estruturas de árvores para representar relações de parte/todo. “Composite” permite tratar objetos.
Padrão Composite Definição
Jobson Ronan Padrões GoF Jobson Ronan
Equipe: Bruno Barbosa Felipe Fernandes Waleska Dias.
2 – Revisão de Programação Orientada a Objetos
Padrões de Projeto Aula 3 – Padrão Strategy.
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Array e ArrayList LPOO – 01/09/14.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Aula 5 – Padrão Decorator
Aula 6 – Padrão Factory Method
Padrões de Projeto Aula 9 – Padrão Adapter.
Aula 7 – Padrão Abstract Factory
Aula 8 – Padrão Singleton
Padrões de Projeto Aula 3 – Padrão Strategy.
Padrões de Projeto Aula 10 – Padrão Façade.
Padrões de Projeto Aula 5 – Padrão Decorator 1. QuickReview: Observer Definição: Quando usar? Tipo de padrão? Como? 2.
Jean Carlo mendes
Padrões de Projeto Aula 10 – Padrão Façade. Façade, em francês, significa fachada ◦ Fachada de prédio 2.
Singleton Definição: Quando usar? Tipo de padrão? Como? estrutural.
Transcrição da apresentação:

Padrões de Projeto Aula 12 – Padrão Adapter

PADRÃO ADAPTER Soluções simples para problemas reais! 2

O que fazer? 1.Trocar a tomada  será que vale apena quebrar a parede? 2.Comprar um novo carregador no padrão europeu  Não deve ser barato... 3.Comprar um adaptador!  #seemslegit 3

Adaptadores e OO Situação: sua empresa compra uma biblioteca “X” que você precisará usar no seu sistema. Mas, as interfaces não são compatíveis... O que fazer? – Nota 1: a biblioteca “X” vêm compilada; – Nota 2: você deseja evitar alterações no código do sistema; Adiciona um adaptador entre elas. – Torna as interfaces compatíveis e respeita o princípio aberto-fechado. 4

O que é um adaptador? Um instrumento que transforma uma interface em outra. – Em outras palavras, permite que dois ou mais componentes de software troquem informação mesmo com interfaces incompatíveis. 5

Definição O padrão Adapter converte a interface de uma classe para outra interface que o cliente espera encontrar. O Adaptador permite que classes com interfaces incompatíveis trabalhem juntas. 6

Terminologia e Estrutura – Object Adapter O cliente (Client) vê apenas a interface alvo (Target). O adaptador (Adapter) é composto com o Adaptado. O adaptador (Adapter) implementa a interface alvo (Target). Todas as requisições são delegadas aos adaptados (Adaptee). 7 O Adapter contém o Adaptee por composição.

Prática I Baixe o código do projeto TomadasPadrãoBrasileiro em edufalcao.me/designpatterns. – No main, instancie um carregador antigo (conector de 2 pinos) e o conecte em uma tomada modelo antigo (de 2 pinos); #rasgado – No main, crie um carregador novo (conector de 3 pinos) e o conecte em uma tomada modelo antigo (de 2 pinos), sem alterar o código existente. 8

Exemplos de Adapters JSDK API: Wrappers de tipos em Java – Double, Integer, Character, etc. "Adaptam" tipos primitivos à interface de java.lang.Object. 9

Terminologia e Estrutura – Class Adapter O class adapter é implementado com herança múltipla. A “herança múltipla pura”, A extends B,C,D não é suportada em java. Mas uma classe pode herdar de uma classe e implementar várias classes, uma maneira peculiar que uma classe pode usar para ser “filha” de várias outras. 10

Prática II Refaça o adaptador que fizemos em sala utilizando o modelo “Class Adapter”. É simples! 11

Referências – [1] Capítulo 7 do livro “Padrões de Projeto – Use a Cabeça!” 12