Maison >interface Web >js tutoriel >Série de modèles de conception JavaScript 5 : modèle d'adaptateur

Série de modèles de conception JavaScript 5 : modèle d'adaptateur

不言
不言original
2018-04-02 14:05:441172parcourir

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 à

Qu'est-ce que le modèle d'adaptateur ?

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.


Résumé

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

  1. Utilisez un objet existant, mais sa méthode ou son interface de propriété ne répond pas à nos exigences.

  2. Vous souhaitez créer un objet réutilisable pouvant fonctionner avec d'autres objets sans rapport ou invisibles

  3. 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

  1. 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.

  2. 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.

  3. Le mode proxy définit un proxy pour une autre interface sans changer son interface.

  4. Le mode façade vise à simplifier une interface et ne propose pas d'options supplémentaires.

  5. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn