quinta-feira, 17 de abril de 2008

Padrão ADAPTER - Aula 20

Nome do Padrão: ADAPTER
Como vimos durante a aula, O Objetivo do padrão Adapter segundo "GOF" é converter a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a comunicação entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces .
Problema: Como enfrentar modificações de bibliotecas terceirizadas, mantendo nossa aplicação sincronizada quanto às alterações essenciais nas funcionalidade e arquitetura.
Solução: Utilizando classes que trabalharão na camada intermediária entre a aplicação cliente e a biblioteca em si. Executando alterações quanto às chamadas de operações para uma correta operação.

Dois tipos de Adapter

Adaptador de Objetos.
Criamos uma classe intermediaria que servirá como interface entre as chamadas do código cliente e o código da classe. Ele trabalhará basicamente como um "filtro" para as chamadas. Chamamos essa forma de COMPOSIÇÃO.

Adaptador de Classes.
Criamos uma classe que HERDARÁ da classe utilitária e sobrescrevemos ou recriamos o método chamado. Chamamos essa forma de HERANÇA.
A escolha da abordagem de implementação do Adapterserá uma tomada de decisão do Arquiteto de Software e dependerá do contexto da aplicação. Muita cautela nessa hora!
Quando Usar o Padrão Adapter:
Você quiser usar uma classe existente, mas sua interface não corresponder à interface de que necessita;
Você quiser criar uma classe reutilizável que coopere com classes não-relacionadas ou não-previstas, ou seja, classes que não necessariamente tenham interfaces compatíveis; (Somente para adaptadores de objetos).
Você precisar usar várias subclasses existentes, porém, for impraticável adaptar essas interfaces criando subclasses para cada uma. Um adaptador de objeto pode adaptar a interface da sua classe-mãe.

Nenhum comentário: