Description du mode adaptateur
Remarque: Le mode adaptateur est généralement le cas où l'interface à utiliser n'est pas cohérente avec l'application ou le système, mais doit être introduite;
Scène: C'est comme si nous avions acheté un téléphone mobile, et après l'avoir acheté, nous avons constaté que la prise de câble de charge était de trois bouchons, mais à la maison, il n'y a que deux bouchons dans la prise. Que devons-nous faire? Pour plus de commodité, et pour pouvoir facturer n'importe où, vous devez acheter un adaptateur de charge universel; afin que le téléphone puisse être facturé à la maison; Sinon, vous ne pouvez que le placer ou courir vers un endroit avec cette prise à charger;
Dans l'environnement de développement réel, puisque l'ancien système ou interface fourni par des applications tierces ne correspond pas à l'interface définie, ces interfaces anciennes ou tierces ne peuvent pas être utilisées dans un environnement orienté vers l'interface. À l'heure actuelle, nous utilisons la classe d'adaptateur pour hériter des classes à adapter et laisser la classe d'adaptateur implémenter des interfaces pour introduire les interfaces de l'ancien système ou des applications tierces;
De cette façon, lorsque vous utilisez la programmation d'interface, vous pouvez utiliser cette classe de correspondance adaptative pour appeler indirectement l'interface de l'ancien système ou de l'application tierce.
Dans JavaScript, pour implémenter un code similaire au modèle adaptateur du langage dynamique orienté objet, vous pouvez utiliser des instances héréditaires de prototype pour l'implémenter; Parce qu'il est basé sur des contraintes d'interface, mais JavaScript n'a pas de numéro d'interface, nous supprimons la couche d'interface et implémentons directement la cible de classe d'implémentation d'interface pour simuler le code source similaire;
Exemple de code source
1. Classes et méthodes d'interface à adapter:
La copie de code est la suivante:
fonction adaptee () {
this.name = 'adaptee';
}
Adaptee.prototype.getName = function () {
Renvoie ce.name;
}
2. Classe d'implémentation normale [Puisqu'il n'y a pas d'interface dans JavaScript, la classe d'implémentation est directement fournie]
La copie de code est la suivante:
function cible () {
this.name = 'cible';
}
Target.prototype.QueryName = function () {
Renvoie ce.name;
}
3. Classe d'adaptation:
La copie de code est la suivante:
fonction adapte () {
this.name = '';
}
Adapte.prototype = new adaptee ();
Adapte.prototype.queryname = function () {
this.getName ();
}
4. Comment utiliser:
La copie de code est la suivante:
var local = new cible ();
local.QueryName (); // appelle la classe d'implémentation normale
var adapte = new adapte ();
adapte.QueryName (); // appelle l'ancien système ou l'interface d'application tierce;
Autres instructions
Dans la quatrième étape ci-dessus, Var Local et Var Adapte sont similaires aux langues orientées objet telles que Java et C #, telles que:
La copie de code est la suivante:
Target d'interface {
Public String QueryName ();
}
// pointeur de référence d'interface
Target local = new realTarget (); // c'est-à-dire la classe d'implémentation cible de JavaScript ci-dessus
local.QueryName ();
//adaptateur
Target adapte = new Adapte ();
adapte.QueryName ();
On peut voir que la classe d'adaptateur est la couche intermédiaire reliant l'interface à l'interface de classe cible; Il est utilisé pour résoudre le problème que la cible requise existe déjà, mais nous ne pouvons pas l'utiliser directement et ne peut pas l'utiliser en conjonction avec notre définition de code, nous devons donc utiliser le mode adaptateur. Le mode adaptateur est également appelé mode de conversion et mode d'emballage;