Maison >interface Web >js tutoriel >Série de modèles de conception JavaScript 5 : modèle d'adaptateur
Cet article partage avec vous la cinquième série de modèles de conception JavaScript : Modèle d'adaptateur. Les amis intéressés peuvent jeter un œil à
Le soi-disant. Modèle d'adaptateur Il s'agit d'utiliser une nouvelle interface pour envelopper l'interface existante et gérer l'inadéquation entre la classe et l'API. Les objets utilisant ce modèle sont également appelés wrappers.
Par exemple, nous avons une interface :
function api (x1, x2, x3) { console.log(x1 + x2 + x3); // 用console.log来模拟接口的相关操作 }
Ensuite nous avons une donnée d'objet :
var obj = { a: '我', b: '很', c: '帅' }
Nous pouvons constater que nos données ne correspondent pas aux paramètres de l'interface , Il n'est pas possible de saisir directement obj pour appeler l'api.
Que devons-nous faire maintenant ? Nous pouvons définir une fonction d'adaptateur :
function adapter (o) { // 通过适配器函数来调用目的api api(o.a, o.b, o.c); } adapter(obj); // 我很帅
De cette façon, via la fonction d'adaptateur adapter() nous pouvons directement passer en obj pour appeler l'api, et le problème de non-concordance entre la classe et l'api sera résolu.
Le modèle d'adaptateur consiste à envelopper l'interface existante avec une nouvelle interface pour gérer l'inadéquation entre la classe et l'API. Les objets utilisant ce modèle sont également appelés wrappers.
Situations applicables
Utilisez un objet existant, mais sa méthode ou son interface de propriété ne répond pas à nos exigences.
Vous souhaitez créer un objet réutilisable pouvant fonctionner avec d'autres objets sans rapport ou invisibles
Vous souhaitez Les objets utilisés existent déjà, mais l'héritage prototypique ne peut pas être appliqué à chacun pour correspondre à son interface. Un adaptateur d'objet peut adapter les méthodes d'interface ou les propriétés de son objet parent.
Différences par rapport aux autres modes
Bien que les adaptateurs et les ponts soient similaires, le point de départ du pontage est différent. Le but est de séparer la partie interface de la partie implémentation afin qu'elles puissent être modifiées plus facilement et indépendamment.
Le motif décorateur améliore la fonctionnalité de l'objet sans changer son interface, il offre donc une meilleure transparence au programme que l'adaptateur.
Le mode proxy définit un proxy pour une autre interface sans changer son interface.
Le mode façade vise à simplifier une interface et ne propose pas d'options supplémentaires.
L'adaptateur convertit une interface en une autre interface, et ne filtre pas certaines capacités ni ne simplifie l'interface.
Recommandations associées :
JavaScript Design Pattern Series One : Factory Pattern
JavaScript Design Pattern Series Three : Mode constructeur
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!