Baixe o app para aproveitar ainda mais
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 .
Compartilhar