Descripción del modo adaptador
Nota: El modo adaptador es generalmente el caso en el que la interfaz que se utilizará no es consistente con la aplicación o el sistema, pero debe introducirse;
Escena: es como si compraramos un teléfono móvil, y después de comprarlo, descubrimos que el enchufe del cable de carga es de tres enchufes, pero en casa, solo hay dos enchufes en el enchufe. ¿Qué debemos hacer? Para mayor comodidad, y para poder cargar en cualquier lugar, debe comprar un adaptador de carga universal; para que el teléfono se pueda cargar en casa; De lo contrario, solo puede colocarlo, o ejecutar a un lugar con este enchufe para cargar;
En el entorno de desarrollo real, dado que el antiguo sistema o interfaz proporcionada por aplicaciones de terceros no coincide con la interfaz definida, tales interfaces antiguas o de terceros no pueden usarse en un entorno orientado a la interfaz. En este momento, usamos la clase de adaptador para heredar las clases para adaptarse y dejar que la clase de adaptador implementa interfaces para introducir las interfaces del sistema anterior o aplicaciones de terceros;
De esta manera, al usar la programación de interfaz, puede usar esta clase de coincidencia adaptativa para llamar indirectamente la interfaz del sistema anterior o la aplicación de terceros.
En JavaScript, para implementar un código similar al patrón adaptador del lenguaje dinámico orientado a objetos, puede usar instancias hereditarias de prototipo para implementarlo; Debido a que se basa en restricciones de interfaz, pero JavaScript no tiene un número de interfaz, eliminamos la capa de interfaz e implementamos directamente el objetivo de la clase de implementación de interfaz para simular un código fuente similar;
Ejemplo del código fuente
1. Clases y métodos de interfaz para ser adaptados:
La copia del código es la siguiente:
function adaptee () {
this.name = 'adaptee';
}
Adaptee.prototype.getName = function () {
devolver esto.name;
}
2. Clase de implementación normal [Dado que no hay interfaz en JavaScript, la clase de implementación se proporciona directamente]
La copia del código es la siguiente:
función target () {
this.name = 'objetivo';
}
Target.prototype.queryName = function () {
devolver esto.name;
}
3. Clase de adaptación:
La copia del código es la siguiente:
función adapte () {
this.name = '';
}
Adapte.prototype = new adaptee ();
Adapte.prototype.queryName = function () {
this.getName ();
}
4. Cómo usar:
La copia del código es la siguiente:
var local = new Target ();
local.queryName (); // llamando a la clase de implementación normal
var adapte = new ADAPTE ();
adapte.queryName (); // llamando al sistema anterior o interfaz de aplicación de terceros;
Otras instrucciones
En el cuarto paso anterior, VAR Local y VAR ADAPTE son similares a los idiomas orientados a objetos como Java y C#, como:
La copia del código es la siguiente:
objetivo de interfaz {
Public String QueryName ();
}
// puntero de referencia de interfaz
Target local = new RealTarget (); // es decir, la clase de implementación objetivo de JavaScript anterior
local.queryName ();
//adaptador
Target ADAPTE = new ADAPTE ();
adapte.queryName ();
Se puede ver que la clase de adaptador es la capa intermedia que conecta la interfaz a la interfaz de clase de destino; Se usa para resolver el problema de que el objetivo requerido ya existe, pero no podemos usarlo directamente y no podemos usarlo junto con nuestra definición de código, por lo que tenemos que usar el modo adaptador. El modo adaptador también se llama modo de conversión y el modo de embalaje;