trabalho
Avançada
TCC-00.174
Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br
Conteúdo: Padrões Adapter & Facade
Documento baseado no material preparado pelo
Prof. Luiz André (http://www.ic.uff.br/~lapaesleme/)
Padrões de Projeto
Introdução
Como fazer a interface de um objeto parecer o que ela de fato não é? Como adaptar um projeto que espera uma interface para uma classe que implementa uma interface distinta?
Como encapsular objetos com o intuito de simplificar suas interfaces? 10/03/2013
Técnicas de Programação Avançada
2
Padrões de Projeto
Exemplo de Problema
Como fazer a interface de um objeto parecer o que ela de fato não é? Como adaptar um projeto que espera uma interface para uma classe que implementa uma interface distinta?
Como encapsular objetos com o intuito de simplificar suas interfaces? 10/03/2013
Técnicas de Programação Avançada
3
Padrões de Projeto
Um primeiro exemplo
Considere duas classes que representam respectivamente uma peça quadrada SquarePeg e uma peça redonda RoundPeg com diferentes interfaces public class SquarePeg { public void insert(String str) {
System.out.println("SquarePeg insert(): " + str);
}
} public class RoundPeg { public void insertIntoHole(String msg) {
System.out.println("RoundPeg insertIntoHole(): " + msg);
}
}
10/03/2013
Técnicas de Programação Avançada
4
Padrões de Projeto
Um primeiro exemplo
O cliente somente entende a interface de SquarePeg, como os método insert(String str) então como podemos inserir peças redondas via a interface insertIntoHole(String msg)?
10/03/2013
Técnicas de Programação Avançada
5
Padrões de Projeto
O Problema de adaptação de interfaces
Considere um sistema de software que funciona bem utilizando uma API fornecida por um vendedor
Sistema
Sistema
10/03/2013
API antiga Técnicas de Programação Avançada
6
Padrões de Projeto
O Problema de