La signification d'un modèle de stratégie est de définir une série d'algorithmes, de les encapsuler un par un et de les rendre remplaçables.
Un petit exemple peut nous rendre clairement en un coup d'œil.
Rappelant la méthode animée dans jQuery.
La copie de code est la suivante:
$ (div) .animate ({"Left: 200px"}, 1000, 'linéaire'); // bouge uniformément
$ (div) .animate ({"Left: 200px"}, 1000, 'cubic'); // Tentation de puissance cubique
Ces deux codes font bouger la div de 200 pixels vers la droite à moins de 1000 ms. Linéaire (vitesse constante) et cubique (assouplissement de puissance des digues) sont des packages d'un mode de stratégie.
Prenons un autre exemple. Au premier semestre, j'ai écrit dev.qplus.com, de nombreuses pages auront un formulaire de vérification instantanée. Chaque membre du formulaire aura des règles de vérification différentes.
Par exemple, dans la boîte de noms, il est nécessaire de vérifier les situations telles que des mots non vides, sensibles et des caractères excessifs. Bien sûr, vous pouvez écrire 3 si d'autre pour résoudre le problème, mais l'évolutivité et la maintenance de l'écriture de code de cette manière peuvent être imaginées. S'il y a plus d'éléments dans la forme et plus de situations de vérification, il n'est pas impossible d'écrire des centaines de si d'autre au total.
Une meilleure approche consiste donc à encapsuler chaque règle de vérification séparément en utilisant un modèle de stratégie. Lorsque vous devez vérifier quel type de vérification, il vous suffit de fournir le nom de cette politique. Comme ça:
La copie de code est la suivante:
nameInput.addvalidata ({
notnull: vrai,
Dirtywords: vrai,
MaxLength: 30
})
Notnull, MaxLength et d'autres méthodes n'ont qu'à retourner uniformément ou uniformément pour indiquer s'ils ont passé la vérification.
Copiez le code comme suit: validatalist = {
notnull: fonction (valeur) {
Valeur de retour! == ”;
},
MaxLength: fonction (valeur, maxlen) {
return value.length ()> maxlen;
}
}
Comme on peut le voir, diverses règles de vérification sont facilement modifiées et remplacées les unes avec les autres. Si un jour, le chef de produit suggère que la limite pour les caractères trop longs est changée en 60 caractères. Cela ne prend que 0,5 seconde pour terminer le travail.