O Adapter é um padrão de projeto estrutural, que permite a colaboração de objetos incompatíveis.
O Adapter atua como um wrapper entre dois objetos. Ele captura chamadas para um objeto e as deixa reconhecíveis tanto em formato como interface para este segundo objeto.
Exemplos de uso: O padrão Adapter é bastante comum no código Java. É frequentemente usado em sistemas baseados em algum código legado. Nesses casos, os adaptadores criam código legado com classes modernas.
Existem alguns adapters padrão nas bibliotecas principais do Java:
Identificação: O Adapter é reconhecível por um construtor que utiliza uma instância de tipo abstrato/interface diferente. Quando o adaptador recebe uma chamada para qualquer um de seus métodos, ele converte parâmetros para o formato apropriado e direciona a chamada para um ou vários métodos do objeto envolvido.
Colocando pinos quadrados em orifícios redondos
Este exemplo simples mostra como um adaptador pode fazer com que objetos incompatíveis funcionem juntos.
round
round/RoundHole.java: Buracos redondos
round/RoundPeg.java: Pinos redondos
square
square/SquarePeg.java: Pinos quadrados
adapters
adapters/SquarePegAdapter.java: Adaptador de pinos quadrados para buracos redondos