Maison >interface Web >js tutoriel >js design patterns : qu'est-ce qu'un modèle de stratégie ? Introduction au modèle de stratégie js

js design patterns : qu'est-ce qu'un modèle de stratégie ? Introduction au modèle de stratégie js

不言
不言original
2018-08-17 16:05:061842parcourir

Cet article vous apporte du contenu sur les modèles de conception js : Qu'est-ce que le modèle de stratégie ? L'introduction du mode stratégie js a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'il vous sera utile.

Qu'est-ce qu'un modèle de stratégie ?

Définition  : Différentes stratégies peuvent être utilisées selon différents paramètres

Solution principale : Il existe de nombreux algorithmes similaires dans dans ce cas, utiliser if...else apporte complexité et difficulté à maintenir.

Quand utiliser le modèle de stratégie : Il existe de nombreuses situations, et ce qui les distingue est simplement leur comportement direct.

Comment résoudre : Mappez différentes stratégies via un objet de hachage.

Avantages du mode stratégie js : 1. L'algorithme peut être commuté librement. 2. Évitez d’utiliser plusieurs jugements conditionnels. 3. Bonne évolutivité et réutilisabilité.

Inconvénients du mode stratégie js : 1. Les catégories de stratégie augmenteront. 2. Tous les cours de stratégie doivent être exposés au monde extérieur.

Scénarios d'utilisation du mode stratégie : 1. La méthode d'exécution doit être modifiée dynamiquement en fonction du comportement. 2. Afin de réduire le code et de le rendre plus lisible. 3. Une gestion unifiée des politiques est nécessaire.

Modèle de stratégie en JS

Observez la démo suivante d'obtention du bonus de fin d'année Différentes méthodes de stratégie (règles) sont obtenues selon différents paramètres (niveaux). le modèle de stratégie dans JS one.

 const strategy = {
  'S': function(salary) {
    return salary * 4
  },
  'A': function(salary) {
    return salary * 3
  },
  'B': function(salary) {
    return salary * 2
  }
}

const calculateBonus = function(level, salary) {
  return strategy[level](salary)
}

calculateBonus('A', 10000) // 30000

Dans JS où les fonctions sont des citoyens de première classe, l'utilisation du modèle de stratégie js est souvent cachée dans les fonctions d'ordre supérieur. Transformez légèrement la démo ci-dessus sous la forme suivante, vous pouvez constater que nous le sommes. je l'utilise déjà, félicitations pour avoir maîtrisé un autre modèle de conception.

const S = function(salary) {
  return salary * 4
}

const A = function(salary) {
  return salary * 3
}

const B = function(salary) {
  return salary * 2
}

const calculateBonus = function(func, salary) {
  return func(salary)
}

calculateBonus(A, 10000) // 30000

Recommandations associées :

Explication détaillée du mode proxy du modèle de conception JS

Conception PHP modèle Code du mode Singleton, modèle de conception php

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