Aller au contenu

Comment créer une API avec le modèle de conception Commande ?

Et voici un cours vidéo très utile pour vos applications : la création d’une API.

Une API (Interface de Programmation d’Application) permet aux autres développeurs d’utiliser des fonctionnalités de votre application sans avoir besoin de modifier vos classes, ni d’accéder à votre code source.

Découvrez le modèle de conception Command à travers ce cours vidéo.

[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]

Comment créer une API avec le modèle de conception Commande ?

Bonjour, et bienvenu sur Développement Facile.

Dans ce nouveau cours, vous allez apprendre à créer une API, en tout cas, découvrir le modèle de conception Commande.

Encapsulez l’invocation des méthodes

C’est à dire que, API déjà qu’est ce que ca veux dire ? C’est Application Programming Interface en Anglais, ou Interface de Programmation d’Application en Français. Le but, c’est d’encapsuler l’invocation de vos méthodes. Vous avez par exemple, besoin de découpler un objet émettant des demandes, genre, une télécommande de chaine hifi, une télécommande de télé, des objets qui savent comment satisfaire ces requêtes, donc, c’est exactement le modèle de conception Commande.

Implémentez le modèle Commande

Alors, le modèle de conception Commande se découpe en plusieurs étapes. Vous avez l’invocateur, c’est à dire, la télécommande hifi, de votre télé ou de votre lumière, et l’invocateur demande à une commande de s’exécuter. Par exemple, vous appuyez sur un bouton de la télécommande de votre chaine hifi, ça va lire un CD, bouton play. Et derrière, vous avez une interface Commande, avec deux méthodes execute et callBack. Et ensuite, vous avez des commandes concrètes utilisées par toutes les commandes : lire le CD, allumer la chaine hifi… Qui elles, implémentent l’interface Commande. Vous avez des objets utilisés par composition, par les commandes concrètes, comme allumer le lecteur CD, la radio, etc.
Donc, pour implémenter le modèle Commande, vous avez besoin d’une interface Commande avec deux méthodes. Rappelez-vous, je vous renvoi au cours sur les interfaces pour connaitre leurs utilités. En tout cas, vous aurez la méthode execute et la méthode callBack. Il faut savoir qu’Execute sert à exécuter une commande, et callBack c’est utilisé pour annuler une commande. C’est à dire que l’objet concerner par le dernier execute, reprend son état initial.

Extension du pattern Command

Vous avez aussi la possibilité d’étendre le pattern Command. Selon les utilisations, il peut être possible d’utiliser le terme macro command, c’est à dire, qu’est ce qu’une une macro commande ? C’est l’exécution de plusieurs commandes les unes à la suite des autres. Par exemple, vous appuyez sur le bouton « marche » de votre chaine hifi, vous voulez que derrière, ça lance la commande allume le lecteur CD, régler le volume à 50 % et lire le CD.
Et les macros commandes, possèdent elles aussi une fonction d’annulation de callBack. Je vais vous montrer un exemple de code d’implémentation du pattern command.

Donc, on part de la classe main, qui permet de lancer notre application. Vous avez derrière cette classe, une classe télécommande, cette classe, qu’est ce qu’elle fait ? Elle possède deux tableaux pour stocker toutes les commandes marches, toutes les commandes arrêts. Donc ici, vous avez une méthode pour rajouter des commandes dans la classe télécommande, enfaite vous programmez les boutons de votre télécommande. Et ensuite lorsqu’un utilisateur appui sur un bouton, en fonction de la position du bouton, par composition vous manipulez des objets, vous ne savez pas quels types d’objet s’est, vous savez juste qu’ils implémentent l’interface commande, donc, ils ont la méthode execute et la méthode callBack, c’est obligatoire. Voila un peu comment fonctionne la télécommande.

Je vous montre l’interface commande, ça veux dire que chaque objet qui va implémenter, l’interface commande aura deux méthodes, une méthode execute, pour que l’objet s’exécute finalement, qu’il lance son algorithme, ce qu’il doit faire, allumer une lampe, allumer la chaine hifi, modifier le volume, et la méthode callBack pour revenir en arrière, pour annuler la commande. Donc une lampe, la classe lampe, elle a un nom et la classe lampe on peut la mettre en marche et l’arrêter. Après, vous rajouterez l’algorithme derrière, donc classe lampe, marche/arrêt, classe tres simple. Vous avez une classe lampeOff qui implémente l’interface iCommande, donc rappelez-vous l’interface iCommande aura une méthode execute et une méthode callBack, et lampeOff utilise une instance de la classe lampe. Vous avez une classe lampe générique, et ça peut être des lampes de votre salon, des lampes de votre chambre, différents types de lampes, différents objets donc, qui dès que l’on va appeler la commande execute, vont appeler la commande arrêt de votre lampe, tout simplement. Ou la méthode, là c’est lampeOff, elle n’est pas là en exemple, mais vous avez une classe suivant le même principe, lampeOn qui va utiliser par composition l’objet lampe, et ici, ça va appeler sur la méthode executelampe.marche. Et derrière, vous avez des macro commandes, donc une macro commande, c’est une classe qui implémente iCommande avec les méthodes execute et callBack et qui permettent d’appeler plusieurs commandes à la suite les unes des autres.
Donc, comment vous faites ? Vous avez votre classe télécommande, vous créez des nouveaux objets, new lampe, comme je vous l’ai dis, cuisine, séjour, chambre. Et vous définissez des objets, donc lampeOn, lampeOff, à chaque fois, vous définissez des nouveaux objets pour la cuisine, le séjour, à chaque fois allumer/éteindre. Et vous ajoutez vos commandes. Pour éteindre la lumière du séjour, pour l’allumer, pareil pour la cuisine, et des numéros à vos commandes 0, 1, 2. Et ensuite, ça va vous permettre, juste avec la télécommande, l’utilisateur appui sur le bouton éteindre, donc la lampe du séjour, OnBouton, position 0 pour allumer la lampe du séjour, pour l’éteindre, ici, OnButtonOff, position 0. Pareil pour la lampe de la cuisine. Position 1, ou pour l’éteindre position 1. Vous pouvez même annuler la dernière commande, vous venez d’éteindre la lampe qui est dans le séjour, vous voulez la rallumer, vous faites le bouton annuler sur votre télécommande, automatiquement ça va rallumer la lampe du séjour.
Et là, vous avez également les macros commandes, ou vous créez un tableau qui contient plusieurs instances, ici donc, de vos commandes que vous transmettez à votre télécommande, donc une macro commande que vous avez ici. Voilà tout simplement après vous transmettez plusieurs commandes directement à une seule commande, en appuyant sur un seul bouton, l’utilisateur va pouvoir allumer la lampe de la cuisine, du séjour et la lampe de la chambre.

Les avantages du modèle « Commande »

Le modèle de conception commande est très pratique pour encapsuler des méthodes dans des objets de commandes, les sauvegarder, les transmettes et les exécuter quand vous le souhaitez. Il faut savoir que le modèle de conception commande est utilisé dans le modèle de conception MVC (Modèle Vue Contrôleur), que vous allez voir dans un des prochains cours.

A vous de jouer !

Donc, maintenant c’est à vous de jouer ! Comme d’habitude, vous trouverez un exemple de code source sous ce cours vidéo. Je vous encourage, à mettre en pratique dès maintenant les conseils de ce cours dans les applications dont vous pourriez avoir besoin, je ne sais pas, justement, si vous devez programmer une télécommande ou les boutons d’une interface de votre application, le pattern commande peut vous aider.
Si vous avez des questions, posez-les-moi directement sous ce cours vidéo.
Je vous dis à très bientôt pour le prochain cours sur Développement Facile.

[/ppmtoggle][/ppmaccordion]

Téléchargez un exemple du pattern Command

Et voici un exemple de création d’une petite API en ActionScript 3.

Téléchargement du code source Exemple ActionScript 3 du pattern Command

Cliquez ici pour télécharger le code source Exemple ActionScript 3 du pattern Command

Comment créez-vous vos API ?

Pour créer des API plus complexes (comme Facebook, Google, Twitter…), dites moi quelles techniques vous utilisez pour créer le code source et les accès extérieures (pour les autres développeurs).

EXCLUSIF : Les 7 Secrets Révélés de JavaScript pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : La formation « JavaScript Facile » OFFERTE pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : Créez VOS Applications JavaScript — en moins de 7 jours grâce à notre formation OFFERTE « JavaScript Facile »

Que diriez-vous de Développer des Applications JavaScript Performantes — dès la semaine prochaine ?

TÉLÉCHARGEZ : Les codes sources du livre « JavaScript Facile » pour Créer VOS Applications — dès la semaine prochaine !

Cliquez ici pour tout recevoir >>