Comprendre le Design Pattern Factory

Factory: l'usine à code
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre les Design Patterns
Revoir le teaser Je m'abonne
Transcription

69,90€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis

69,90€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Comprendre le fonctionnement du pattern Factory, ses usages en programmation orientée objet et fonctionnelle, et comment créer des objets et fonctions à la volée.

Le Design Pattern Factory permet de générer du code à la volée pour faciliter la création d'objets et de fonctions en programmation.

Nous allons commencer par le Design Pattern Factory, puisqu'il est conceptuellement assez simple. Il s'agit d'avoir du code qui va fabriquer du code derrière. On l'appelle Factory parce que cela signifie « usine » en français. Alors, très souvent, vous allez utiliser quelque chose pour fabriquer autre chose en programmation. Le plus souvent, ce sera une structure de données. Parfois, ce seront des objets, et donc quelque chose qui mélange des données et du code. Le Design Pattern Factory fonctionne effectivement avec les objets, mais également avec du code pur tel que des fonctions. Vous n'allez donc non pas, comme d'habitude, fabriquer uniquement des données pures, mais les outils qui vont vous permettre de manipuler ces données, vous allez les fabriquer, les générer à la volée. Comme tous les Design Patterns, le Design Pattern Factory n'est pas limité à la programmation orientée à l'objet. Mais si vous en avez fait, vous avez probablement fabriqué beaucoup d'objets avec. En effet, le simple fait d'instancier un objet, d'appeler son constructeur, par exemple avec « __new » pour Python, ou alors avec le mot-clé « new » dans d'autres langages de programmation, vous créez un objet, et donc vous utilisez une Factory. La plupart des langages orientés à l'objet ont donc une Factory qui est intégrée au langage. Alors, créer du code à la volée, évidemment, ça paraît abstrait. Pour quelles raisons pourrait-on vouloir avoir du code qui crée du code ? Eh bien, pour les langages fonctionnels, par exemple tels que Lisp ou dans une moindre mesure JavaScript, on va avoir très souvent la notion de clojure, dans laquelle on va emprisonner des données dans des callbacks. Je vous l'avais dit, il faut avoir des notions solides sur la manipulation des fonctions, puisque vous devez maîtriser ces notions pour pouvoir utiliser le pattern Factory quand on va vouloir fabriquer des fonctions à la volée. On va notamment très souvent utiliser les Factory quand on voudra utiliser des callbacks. On a vu tout à l'heure l'injection de dépendance, et ces callbacks parfois ont des signatures particulières. Pour pouvoir produire exactement la fonction qu'on veut avec la bonne signature, on va parfois utiliser la Factory pour les créer. Dans des langages où on a aussi des classes qui sont moins flexibles que dans d'autres langages, par exemple dans Java, on va avoir des usines à fabrication de classes qui vont vous permettre de passer des dépendances de l'un à l'autre, toujours dans le cadre de l'injection de dépendance. Vous l'aurez compris, derrière son apparente simplicité, le pattern Factory a vraiment un large panel d'usages. On peut commencer avec des choses très simples et aller vers le très complexe, et on va illustrer ça par des exemples par le code tout de suite.

Voir plus
Questions réponses
Pourquoi le Design Pattern Factory est-il important en programmation ?
Le pattern Factory permet de créer des objets et des fonctions à la volée, facilitant ainsi la génération de code et la gestion de la complexité dans les applications.
Quels langages de programmation bénéficient le plus du pattern Factory ?
Les langages orientés objet comme Java et Python, ainsi que les langages fonctionnels comme Lisp et JavaScript.
Comment le pattern Factory est-il utilisé dans l'injection de dépendance ?
Il permet de créer des objets ou des fonctions avec des signatures spécifiques, facilitant ainsi la gestion et le passage de dépendances.

Programme détaillé