Buscar

Design Patterns - Adapter

Prévia do material em texto

Desing Patterns
Adapter
Adapter Design Pattern
 Intent
 Converter a interface de uma classe em outra interface esperada pelos 
clientes . Adapter permite que classes antes incompatíveis possam trabalhar 
juntas.
 Misture uma classe existente com uma nova interface.
 Impendância de um componente antigo para o novo sistema.
Adapter Design Pattern
 Problem
 Um componente "off the shelf" oferece uma funcionalidade convincente que
você gostaria de reutilizar , mas a sua " visão do mundo " não é compatível
com a filosofia e arquitetura do sistema actualmente a ser desenvolvido .
Adapter Design Pattern
 Discussion
 Reutilização sempre foi dolorosa e indescritível. Um dos motivos foi a
tribulação de projetar algo novo, enquanto reutiliza algo velho. Há sempre
algo não muito certo entre o velho eo novo. Pode ser dimensões físicas ou
desalinhamento. Pode ser temporárias ou sincronização. Pode ser suposições
infelizes ou padrões concorrentes.
 É como o problema da inserção de um novo plugue elétrico de três pinos em
uma tomada de parede antiga de dois pinos - algum tipo de adaptador ou
intermediário é necessário.
Adapter Design Pattern
 Adapter é sobre a criação de uma abstração intermediária que se traduz, ou
mapeia, o velho componente para o novo sistema. Clientes chama, métodos
no objeto adaptador que os redirecionamentos em chamadas para o
componente legado. Esta estratégia pode ser implementado com a herança ou
com agregação .
 Funções adaptador como um invólucro ou modificador de uma classe
existente . Ele fornece uma visão diferente ou traduzida dessa classe .
Adapter Design Pattern
 Structure
 Abaixo, o método de exibição de um componente legado Retângulo () espera
receber "x, y, w, h" parâmetros. Mas o cliente quer passar "x superior
esquerdo e y" e "mais baixos x direita e y". Esta incongruência pode ser
conciliada, adicionando um nível extra de indireção - ou seja, um objeto
adaptador.
Adapter Design Pattern
 O adaptador também pode ser pensado como uma "moldagem".
Adapter Design Pattern
 Example
 O padrão Adapter permite que classes incompatíveis trabalhem juntas ,
convertendo a interface de uma classe em uma interface esperada pelos
clientes. Chaves soquete fornecem um exemplo do adaptador. Uma tomada
atribui a um roquete, desde que o tamanho da unidade é a mesma. Tamanhos
de unidade típicas nos Estados Unidos são 1/2 "e 1/4". Obviamente, um 1/2
"catraca unidade não vai caber em um 1/4" tomada de carro, a menos que é
utilizado um adaptador. A 1/2 "a 1/4" adaptador tem uma "conexão fêmea
para caber no 1/2" 1/2 unidade de catraca, e uma "conexão macho para
encaixar no 1/4" 1/4 do soquete da movimentação.
Adapter Design Pattern
 Check List
 Identificar os jogadores : o componente (s) que quer ser acomodado (ou seja, 
o cliente ) , e o componente que precisa se adaptar (ou seja, o adaptee).
 Identificar a interface que o cliente necessita.
 Projete uma classe "wrapper" que pode adaptar para o cliente.
 A classe do adaptador / wrapper " tem uma " instância da classe adaptee .
 O adaptador / classe wrapper "mapea" a interface do cliente para a interface 
adaptee .
 Os usos do cliente ( é acoplado) a nova interface
Adapter Design Pattern
 Rules of Thumbs
 Adapter faz as coisas funcionarem após serem projetadas ; Bridge faz funcionar antes que
eles sejam .
 Bridge é projetado up-front para deixar a abstração e a implementação de forma
independente. Adapter é adaptado para fazer classes não relacionadas trabalharem juntas.
 Adaptador fornece uma interface diferente para o seu objeto . Proxy oferece a mesma
interface. Decorator fornece uma interface melhorada.
 Adaptador é utilizado para mudar a interface de um objeto existente. Decorator aumenta
outro objeto sem alterar a sua interface. Decorator é , portanto, mais transparente para a
aplicação de um adaptador é . Como consequência , decorador suporta composição recursiva
, o que não é possível com adaptadores puros .
 Facade define uma nova interface , enquanto o adaptador reutiliza uma velha interface.
Lembre-se de que o adaptador faz duas interfaces existentes trabalhar juntas em oposição à
definição de um sistema totalmente novo .

Continue navegando