Comment créer des architectures faiblement couplées ?

fermer la fenetre

Des Applications Performantes Sans Vous Prendre La Tête !

Recevez la formation "Développement Facilte" GRATUITEMENT
Avec tous les Codes Sources Commentés
 
(Les événements, la programmation orientée objets, les modèles de conception, Les éditeurs, les outils, 
l'efficacité, CSS3, HTML5, JavaScript, jQuery, Dojo...)

Renseignez votre prénom et votre adresse email ci-dessous :

Dans ce cours, vous allez découvrir une stratégie essentielle pour obtenir une architecture applicative faiblement couplée.

De plus, cette vidéo est plus complète que d’habitude, vous recevrez des rappels importants à appliquer dans votre développement.

C’est parti pour l’utilisation de ce “presque pattern” : Fabrique Simple.

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

Comment créer des architectures faiblement couplées ?

Bonjour, et bienvenu sur Développement Facile.

Dans ce nouveau cours, vous allez apprendre comment créer des architectures d’applications faiblement couplées. En gros, vous allez découvrir le design pattern ou modèle de conception factory. C’est à dire, pour schématiser, un client qui arrive dans une usine et qui demande une glace. A chaque fois, il aura une glace, la glace qu’il souhaite.

Libérez-vous des dépendances !

Le but, c’est de vous libérer totalement des dépendances. La création de nouveaux objets ne se limite pas à utiliser le mot clé new. Il y a d’autres possibilités. L’instanciation d’une classe ne doit pas toujours être public, comme vous l’avez vu avec les classes abstraites. Et pour éviter les problèmes de couplages, vous allez découvrir dès maintenant le modèle. Bon, c’est pas vraiment un modèle de conception, mais ça se rapproche, c’est le modèle Fabrique Simple. Le modèle de conception factory ou fabrique, vous le verrez dans un prochain cours.
En tout cas, le modèle Fabrique Simple va vous aidez à vous libérer des dépendances contraignantes.

Le problème de “new publique”

Donc, lorsque vous utilisez new, vous instanciez une classe concrète. C’est un peu “le problème” avec new publique. C’est une incrémentation, le fait de lier votre classe à une classe concrète peut le rendre plus fragile au niveau des bugs, plus rigide avec des évolutions un peu plus difficiles, et pour ajouter des nouvelles fonctionnalités, il devient alors nécessaire de modifier le code existant. Et rappelez-vous, je vous ai dis de toujours éviter de modifier le code existant, par contre, vous pouvez l’étendre, ce code là, en rajoutant de nouvelles fonctionnalités.
Si vous modifiez le code existant, vous avez beaucoup plus de risques, beaucoup plus élevés, de créer des bugs, d’avoir des bugs, et des mises à jour dans le temps, qui seront de plus en plus difficiles avec du code disséminé dans plusieurs classes de l’application, donc, du code un peu partout. Et à la fin, vous obtenez une application un peu usine à gaz, il est très difficile de la faire évoluer.

Les Stratégies Essentielles

Revenons aux stratégies essentielles. Comme je vous l’enseigne dans les précédents cours, il y a toujours des stratégies essentielles, utilisables quelques soit votre langage de programmation. Que ce soit en PHP, en ActionScript, en Axe, en Java, en JavaScript, en C++, c’est tout le temps les mêmes stratégies que vous devez appliquer, en modifiant légèrement la syntaxe.
Codez des interfaces, votre code doit s’appuyer sur une interface. C’est à dire que votre code fonctionnera avec toutes les classes qui implémentes cette interface, c’est du polymorphisme, rappelez-vous, vous avez commencé à le voir dans le cours concernant le modèle de conception décorateur, dans un autre cours sur la programmation orientée objet. Dès maintenant, commencez par utiliser le modèle de conception Fabrique Simple.
Comment implémenter le modèle Fabrique Simple ?
Nous allons prendre par exemple, une pizzeria. Vous avez une classe pizzeria qui utilise la classe Fabrique Simple, pour créer les nouvelles pizzas commandées par un client. Une classe Fabrique Simple se réfère à des classes pizzas concrètes. Donc, la Fabrique Simple, elle instancie une nouvelle classe pizza, donc fromage, fruits de mer, végétarienne en fonction de la demande du client. La Fabrique Simple, comme vous l’avez vu au début de ce cours, l’usine en fonction de la demande du client, elle va créer une glace au chocolat, une glace à la framboise, un banana split, etc. C’est le même principe pour une pizzeria et vous avez une classe abstraite pizza, qui contient déjà toutes les implémentations utiles, rappelez-vous le cours sur les classes abstraites. La classe abstraite pizza contient les méthodes, les propriétés déjà utiles, préparer, cuire, couper, emballer la pizza, etc.

Comment implémenter “Fabrique Simple” ?

Ensuite, vous avez Fabrique Simple, il y a les classes concrètes, les pizzas, donc chaque classe pizza, il y a une pizza au fromage, une aux fruits de mer, une classe pizza végétarienne, elles implémentent la classe abstraite pizza. Ca fait que par défaut, pizza fromage, fruits de mer et végétarienne etc, tous les autres types de pizza auront déjà les bonnes méthodes, les méthodes de la classe pizza, et ses classes là, pizza fromage, fruits de mer vont utiliser les ingrédients nécessaire pour créer la pizza demandée par le client en utilisant les méthodes de la classe abstraite pizza.
Et elle, la Fabrique Simple, va utiliser des instances de pizza, et donc effectuer de la composition. Rappelez-vous, très important, le cours sur la composition, j’ai beaucoup insisté sur le fait de préférer la composition à l’héritage. Donc enfaite, la pizzeria elle créée la pizza demandée par le client, avec une instanciation classique, new pizzeria, on transmet à la classe pizzeria une nouvelle instance de la Fabrique Simple, pizza, et ensuite la pizzeria, on lui fait commander une pizza au fromage demandée par le client, et on récupère notre instance pizza. Donc, la pizza, et on peut la livrer au client, je vais vous montrer un exemple de code source, ce sera plus parlant pour vous.
Alors commençons par pizza, c’est une classe abstraite qui comme je vous le dis contient en protected, rappelez-vous le cours sur les attributs des classes protected, private, public, à quoi ça sert, vous consultez le cours et puis voila. Donc, vous avez la liste des ingrédients d’une pizza donc, un objet pâte, un objet sauce, un objet légume, une fabrique d’ingrédients, également on peut utiliser plusieurs fabriques pour étendre les fonctionnalités de la classe.
Donc la classe abstraite pizza, avec les méthodes préparées, cuire, emballer, que vous aurez bien évidemment complétée dans toutes les classes qui vont étendre la classe pizza, et ensuite vous avez des pizza, donc une pizza fromage, avec le nom pizza fromage et bien évidemment en fonction du type de pizza, vous utilisez le principe override, que vous allez voir dans un prochain cours, pour compléter la méthode de la classe abstraite. Si vous regardez la méthode de cette classe préparée, elle est vide, et comme je vous l’ai expliqué dans le cours sur les classes abstraites, vous devez compléter votre méthode avec les ingrédients propre à la pizza au fromage, donc en utilisant la création de la pate, de la sauce, du fromage pour une pizza au fromage.
Et là vous pouvez définir autant de pizzas que vous le souhaitez, donc pizza au fromage, aux fruits de mer, végétarienne, etc. D’un autre coté, vous avez votre Fabrique Simple, qu’est ce qu’elle fait ?
Elle s’occupe de créer des pizzas, elle va recevoir une chaine de caractères String en fonction de la pizza au fromage, elle va créer new pizza au fromage. Pizza aux fruits de mer, new pizza aux fruits de mer, ou par défaut pizza au fromage, si le client demande une pizza “qui n’existe pas” on lui donne par défaut une pizza au fromage.
Tout en sachant que haut pizza, donc il manque la variable haut pizza, donc enfaite la variable haut pizza serait définie, vous auriez private var haut pizza : qui étendrait, qui serait de type abstract pizza. Comme ceci. Et donc, hop, haut pizza récupère que ce soit une instance de pizza au fromage, aux fruits de mer, vu que ça étend la classe abstractive pizza, vous pouvez définir set main, manipuler votre instance et la retourner à la pizzeria, c’est à dire que la pizzeria elle manipule une instance haut pizza, et donc elle utilise une fabrique, quand vous l’instanciez, vous l’instanciez avec une fabrique, une instance de la Fabrique Simple, et c’est la fabrique qui va créer la pizza. Donc, c’est le principe Fabrique Simple. Vous ne vous occupez pas des classes elles-mêmes, vous manipulez uniquement des instances. Ensuite, la pizza, vous la préparez, vous la faite cuire, vous la coupez, vous l’emballée, et vous la “retournez” au client.

Avantages de “Fabrique Simple”

Ensuite, les avantages du pattern Fabrique Simple, comme vous l’avez remarquez, Fabrique Simple utilise énormément la composition. Vous pouvez modifier dynamiquement le comportement au moment de l’exécution de l’application. Vous pouvez faire des changements de l’application en direct, de l’implémentation en direct. Dans l’exemple, c’est la possibilité de créer une pizza spécifique pour le client, une pizza au fromage, végétarienne.
Le but, c’est que vous devez dépendre d’abstractions, donc utilisez des classes abstraites quand c’est possible. Evitez, dans la mesure du possible, de dépendre de classes concrètes et utilisez à chaque fois des interfaces. Ce sont des principes essentiels. Evidemment, ces principes sont plus ou moins souples en fonction du type d’application que vous créez, ce sont des principes à avoir dans un coin de la tête et à utiliser.

Les Gains pour vos applications performantes

Les gains pour vos applications performantes, ça va vous permettre d’ajouter des nouveaux comportements sans modifier le code existant et toujours, vous aurez des conceptions résistantes aux changements dans des architectures d’applications résistantes aux changements, et suffisamment souples pour accepter les nouvelles fonctionnalités demandées par vos utilisateurs et vos clients.

A vous de jouer !

Dès maintenant, vous pouvez télécharger un exemple de code source sous ce cours vidéo. Etudiez le pattern modèle de conception “Fabrique Simple” et mettez-le en pratique pour créer vos applications.
Si vous avez des questions, posez-les-moi directement sous ce cours vidéo.
Ou si vous avez besoin de complément pour ce cours là dites le moi sous ce cours vidéo dans les commentaires.
Je vous dis à très bientôt pour le prochain cours sur Développement Facile.

[/ppmtoggle][/ppmaccordion]

Téléchargez un exemple de fabrique simple

Et voici un exemple de code source avec les différentes classes de la fabrique simple.

Downloads

Consultez également ce cours pour connaitre les attributs d’une classe et d’une variable (private, public…).

Dans quel type d’application avez-vous implémenté une fabrique simple ?

Il est possible d’utiliser ce “presque pattern” pour créer une application “usine de fabrication”, une pizzeria…
Partagez vos exemples d’applications développées sur ce modèle.

Créez des Applications Performantes avec la Formation Gratuite Développement Facile !

Recevez des Cours Vidéos avec les codes sources 
(Les événements, la POO, les modèles de conception, Les éditeurs, 
efficacité, CSS3, HTML5, JavaScript, jQuery, Dojo...)