Maison  >  Article  >  interface Web  >  Interface fluide JavaScript DSL (utilisant l'appel en chaîne) example_javascript skills

Interface fluide JavaScript DSL (utilisant l'appel en chaîne) example_javascript skills

WBOY
WBOYoriginal
2016-05-16 16:09:241466parcourir

Après avoir étudié attentivement le DSL pendant un certain temps, j'ai découvert plusieurs choses intéressantes. L'une des choses les plus utilisées en JavaScript est probablement les appels chaînés (Method Chaining). Fait intéressant, Martin Flower a souligné :

Copier le code Le code est le suivant :

J'ai également remarqué une idée fausse courante : de nombreuses personnes semblent assimiler les interfaces fluides au chaînage de méthodes. Certes, le chaînage est une technique courante à utiliser avec des interfaces fluides, mais la véritable maîtrise est bien plus que cela.

De nombreuses personnes assimilent les appels enchaînés à des interfaces fluides. Cependant, l'appel en chaîne est une méthode courante d'interface fluide, et la véritable interface fluide est bien plus que cela.

Interface fluide DSL

L'intention initiale de l'interface fluide est de créer une API lisible. Après tout, le code est écrit pour que les gens puissent le lire.

De même, examinons brièvement comment nous avons manipulé le DOM via la méthode en cascade plus tôt

Copier le code Le code est le suivant :

var btn = document.createElement("BUTTON"); // Créer un élément


Copier le code Le code est le suivant : $('').append("CLIQUEZ SUR MOI");

Attends
Nous pouvons donc créer un exemple simple pour montrer ce DSL le plus simple


Copier le code Le code est le suivant : Func = (fonction() {
This.add = function(){
console.log('1');
         renvoie ceci ;
};
This.result = function(){
console.log('2');
         renvoie ceci ;
};
Renvoyez ceci ;
});

var func = new Func();
func.add().result();


Cependant, cela ressemble à un générateur d'expressions.


Générateur d'expressions DSL

L'objet générateur d'expression fournit un ensemble d'interfaces cohérentes, puis convertit les appels d'interface cohérents en appels à l'API de requête de commande sous-jacente.

Une telle API peut être vue dans certaines API sur les bases de données :


Copier le code Le code est le suivant : var requête =
SQL('sélectionner le nom, la description des widgets')
.WHERE('price < ', $(params.max_price), AND,
            'autorisation = ', $(params.clearance))
.ORDERBY('nom asc');


Un problème avec les appels enchaînés est la fin. Dans le code ci-dessus, nous n’avons pas la fin, ce qui est très déroutant. . L'ajout d'une requête et d'une fin semble être un bon résultat.

Autres

Méthode cascade Exprimé comme suit :



Copier le code Le code est le suivant : a.b();
a.c();


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