Descrição do modo adaptador
Nota: O modo adaptador geralmente é o caso em que a interface a ser usada não é consistente com o aplicativo ou o sistema, mas precisa ser introduzido;
Cena: é como se tivéssemos comprado um telefone celular e, depois de comprá -lo, descobrimos que o plugue do cabo de carregamento tem três plugues, mas em casa, existem apenas dois plugues no soquete. O que devemos fazer? Por conveniência e, para poder cobrar em qualquer lugar, você deve comprar um adaptador de carregamento universal; para que o telefone possa ser carregado em casa; Caso contrário, você só pode colocá -lo ou executar para um local com este plugue para carregar;
No ambiente de desenvolvimento real, uma vez que o sistema ou interface antigo fornecido por aplicativos de terceiros não corresponde à interface definida, essas interfaces antigas ou de terceiros não podem ser usadas em um ambiente orientado para a interface. No momento, usamos a classe adaptadora para herdar as classes a serem adaptadas e deixamos a classe adaptadora implementar interfaces para introduzir as interfaces do sistema antigo ou aplicativos de terceiros;
Dessa forma, ao usar a programação da interface, você pode usar essa classe de correspondência adaptativa para chamar indiretamente a interface do sistema antigo ou aplicativo de terceiros.
No JavaScript, para implementar código semelhante ao padrão adaptador da linguagem dinâmica orientada a objetos, você pode usar instâncias herdadas de protótipo para implementá-lo; Por se basear em restrições de interface, mas o JavaScript não possui um número de interface, removemos a camada de interface e implementamos diretamente o destino da classe de implementação da interface para simular código de origem semelhante;
Exemplo de código -fonte
1. Classes e métodos de interface a serem adaptados:
A cópia do código é a seguinte:
função adaptae () {
this.name = 'Adaptee';
}
Adaptae.prototype.getName = function () {
retornar este.name;
}
2. Classe de implementação normal [Como não há interface no JavaScript, a classe de implementação é fornecida diretamente]
A cópia do código é a seguinte:
função alvo () {
this.name = 'Target';
}
Target.prototype.QueryName = function () {
retornar este.name;
}
3. Classe de adaptação:
A cópia do código é a seguinte:
função adapte () {
this.name = '';
}
Adapte.prototype = new Adaptee ();
Adapte.prototype.QueryName = function () {
this.getName ();
}
4. Como usar:
A cópia do código é a seguinte:
var local = new Target ();
local.QueryName (); // chamando a classe de implementação normal
var adapte = novo adapte ();
adapte.queryName (); // chamando o sistema antigo ou interface de aplicativos de terceiros;
Outras instruções
Na quarta etapa acima, o VAR Local e o Adapte são semelhantes aos idiomas orientados a objetos, como Java e C#, como:
A cópia do código é a seguinte:
alvo de interface {
public string queryname ();
}
// Ponteiro de referência de interface
Target Local = new RealTarget (); // isto é, a classe de implementação de destino de JavaScript acima
local.QueryName ();
//adaptador
Alvo adapte = novo adapte ();
adapte.queryName ();
Pode -se observar que a classe adaptadora é a camada intermediária que conecta a interface à interface da classe de destino; É usado para resolver o problema de que o alvo necessário já existe, mas não podemos usá -lo diretamente e não podemos usá -lo em conjunto com nossa definição de código, portanto, precisamos usar o modo adaptador. O modo adaptador também é chamado de modo de conversão e modo de embalagem;