Design Patterns
Padrão adaptador	
Se resume em converter uma interface de uma classe para outra interface que o cliente espera encontrar.
...
Classe A                   Adaptador            Classe B
public interface Pato {
publicvoidquack();
publicvoidfly();
		 	 }
public class PatoBravo implements Pato {
	@Override
publicvoidquack() {
		System.out.println("Quack");
	}
	@Over...
public interface Peru {
publicvoid gorgolejar();
publicvoidfly();
}
public class PeruComumimplements Peru {
	@Override
publicvoid gorgolejar() {
		System.out.println("Glu - Glu");
...
publicclassPeruAdaptadorimplements Pato {
private Peru peru;
publicPeruAdaptador(Peru peru) {
this.peru = peru;
	}
	@Overr...
publicclassPatoTest {
	public static void main(String[] args) {
PatoBravopatoBravo = newPatoBravo();
PeruComumperuComum= n...
Testando peru adaptado
Glu - Glu
	Peru adaptado
Testando o pato bravo	
Quack
Fly
Testando o peru disfarçado de pato
Glu - ...
Existe também o adaptador de classes,
porem não é possível utiliza-lo com o java.
O motivo é que ele requer herança multip...
Adaptadores do mundo real
Enumeration
hasMoreElements()
nextElement()
Iterator
hasNext()
next()
	remove()
public class EnumerationIterator implements Iterator<Object> {
privateEnumeration<Object> enumeration;
publicE...
Obrigado !
Upcoming SlideShare
Loading in...5
×

Apresentação Design Adaptador

1,092

Published on

1 Comment
0 Likes
Statistics
Notes
  • (19)Jogando .net o MELHOR SERVIDOR DE MU ONLINE DO BRASIL!
    Season 6 Ep. 3 em todos os Servers. Sendo 7 servers diferenciados proporcionando sua diversão.
    Não perca os Eventos e promoções do Dia das crianças, diversão para todos na Jogando.net:
    Jdiamonds e Jcachs em drobro, concorra a um iPad e diversos prêmios!
    Estamos preparando a nova Maratona de eventos das crianças, em breve os melhores eventos de todos os tempos!
    VEJA ALGUMAS NOVIDADES :
    Novos kits : DEVASTATOR e SUPREMO DIAMOND V2 {apenas 100 unidades} com Rings e Pendat Mysthical ;
    Novos Shields Power v3 18 opts ;
    Conheça também o site de Animes Cloud: http://www.animescloud.com, mais de 20.000 videos online.
    >> CADASTRE-SE E GANHE 5 DIAS DE VIP
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
1,092
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Apresentação Design Adaptador

  1. 1. Design Patterns
  2. 2. Padrão adaptador Se resume em converter uma interface de uma classe para outra interface que o cliente espera encontrar. O adaptador permite que classes com interfaces incompatíveis trabalhem juntas.
  3. 3. Classe A Adaptador Classe B
  4. 4. public interface Pato { publicvoidquack(); publicvoidfly(); }
  5. 5. public class PatoBravo implements Pato { @Override publicvoidquack() { System.out.println("Quack"); } @Override publicvoidfly() { System.out.println("Fly"); } }
  6. 6. public interface Peru { publicvoid gorgolejar(); publicvoidfly(); }
  7. 7. public class PeruComumimplements Peru { @Override publicvoid gorgolejar() { System.out.println("Glu - Glu"); } @Override publicvoidfly() { System.out.println("Peru comum voando"); } }
  8. 8. publicclassPeruAdaptadorimplements Pato { private Peru peru; publicPeruAdaptador(Peru peru) { this.peru = peru; } @Override publicvoidquack() { peru.gorgolejar(); } @Override publicvoidfly() { for (int i = 0; i < 5; i++) { peru.fly(); } } }
  9. 9. publicclassPatoTest { public static void main(String[] args) { PatoBravopatoBravo = newPatoBravo(); PeruComumperuComum= newPeruComum(); Pato peruAdaptado = newPeruAdaptador(peruComum); System.out.println("Testando peru comum"); peruComum.gorgolejar(); peruComum.fly(); System.out.println("nTestando o pato bravo"); testPato(patoBravo); System.out.println("nTestando o peru disfarçado de pato"); testPato(peruAdaptado); staticvoidtestPato(Pato pato){ pato.quack(); pato.fly();}
  10. 10. Testando peru adaptado Glu - Glu Peru adaptado Testando o pato bravo Quack Fly Testando o peru disfarçado de pato Glu - Glu Peru adaptado Peru adaptado Peru adaptado Peru adaptado Peru adaptado
  11. 11. Existe também o adaptador de classes, porem não é possível utiliza-lo com o java. O motivo é que ele requer herança multipla, o que até então ainda não é possível no java. A principal diferença é que ao invés de utilizar a composição como faz o adaptador de objetos, o adaptador de classes utiliza a herança, assim podendo ter acesso as chamadas do métodos.
  12. 12. Adaptadores do mundo real Enumeration hasMoreElements() nextElement() Iterator hasNext() next() remove()
  13. 13. public class EnumerationIterator implements Iterator<Object> { privateEnumeration<Object> enumeration; publicEnumerationIterator(Enumeration<Object> enumeration) this.enumeration = enumeration; @Override publicbooleanhasNext() returnenumeration.hasMoreElements(); @Override publicObjectnext() returnenumeration.nextElement(); @Override publicvoid remove() { thrownewUnsupportedOperationException(); }
  14. 14. Obrigado !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×