Criacionais |
Estruturais |
Comportamentais |
DIFCAP |
Referências |
Créditos |
| Classificação | Estrutural | ||
| Conhecido como | Wrapper e Translator | ||
| Propósito | O principal objetivo do Adapter é facilitar a conversão da interface de uma classe para outra interface mais interessante para o cliente, fazendo com que várias classes possam trabalhar em conjunto independentemente das interfaces originais. Às vezes é preciso modificar uma classe que não pode ser alterada adequadamente devido à falta do código fonte (alguma biblioteca de classes comercial), ou por alguma outra razão. O Adapter é uma das formas de modificar classes nestas circunstâncias, sendo classificado com a de finalidade estrutural e abrange tanto escopo de classe quanto de objeto. |
||
| Motivação | Adapter é usado quando:
|
||
| Aplicabilidade | Use o Padrão Adapter quando:
|
||
| Estrutura |
|
||
| Participantes | Cliente : Colabora entre os objetos conforme a interface Alvo. Alvo : Define a interface de domínio específico que o Cliente utiliza. Adaptador : Adapta a ClasseExistente para ser utilizada pela classe Alvo. ClasseExistente : Define uma interface pré-existente que necessita ser adaptada. |
||
| Conseqüências |
|
||
| Implementação | Usou-se como exemplo (adaptado [Software Design Patterns, 2005]), ilustrado na Figura 2, uma implementação que demonstra o uso de um banco de dados químico legado. Objetos da classe CompostoQuimico acessam o banco de dados através de uma interface que utiliza o Padrão Adapter.
|
||
| Código | |||
Notas de Aprendizado |
A implementação do Adapter normalmente é simples e possui grande material de consulta em livros e na Internet, mas deve-se considerar alguns aspectos importantes na hora da implementação e tomar bastante cuidado. Esses fatores determinaram um tempo maior para pesquisa e estudo (oito dias) e implementação (oito dias). |