Comment utiliser les factory functions en Javascript<span class="wtr-time-wrap after-title"><span class="wtr-time-number">4</span> min read</span>

Comment utiliser les factory functions en Javascript4 min read

Les factory fonctions sont des fonctions permettant de créer des objets de manière normalisés. On les utilise en Javascript pour manipuler des objets et des données.

Dans cet article, nous allons voir comment utiliser les factory functions pour créer des programmes intelligents et fonctionnels.

C’est quoi une factory function ?

Une factory function c’est simplement une fonction qui retourne un objet. On peux ensuite utiliser cet objet dans notre code.

L’intéret, c’est de normaliser et d’automatiser la création d’objets. Prenons un exemple, une application qui doit gérer des chambres d’hôtel.

Pour stocker ces données, on va utiliser des objets. La méthode classique serait de faire quelque chose comme ça :

const chambre1 = {
    nom : 'Suite royale',
    prix : 1000,
    taille : 100
};

const chambre2 = {
    nom : 'Chambre économique',
    prix : 70,
    taille : 20
}

Le soucis, c’est que l”on doit créer nos objets à la main. C’est long et totalement manuel. On ne peux pas créer dynamiquement une nouvelle chambre d’hôtel sans l’écrire dans le code.

C’est là que les factory functions entrent en jeux :

function creerHotel(nom, prix, taille){
    return {
        nom : nom,
        prix : prix,
        taille : taille,
    }
}

const chambre1 = creerHotel('Suite Royale', 1000,100);
const chambre2 = creerHotel('Chambre économique', 70,20);

Ici, je peux créer autant de chambres d’hôtel que je veux avec une seule ligne de code, c’est mieux non ? Ici, je passe des arguments à ma fonction et je les assigne comme valeur, ce qui me permets de créer des objets avec les valeurs que je veux.

Observons nos objets chambres avec un console.log() :

{ nom: 'Suite Royale', prix: 1000, taille: 100 }
{ nom: 'Chambre économique', prix: 70, taille: 20 }

Comme vous le voyez, on possède des objets. Notre factory function marche parfaitement.

Intégrer des méthodes à nos factory functions

Bien sûr, on peux aller un peu plus loin. Essayons d’intégrer des méthodes à ces objets.

Une méthode est une fonction intégrée à un objet permettant de modifier des attributs internes et de faire des actions externes.

function creerHotel(nom, prix, taille){
    return {
        nom : nom,
        prix : prix,
        taille : taille,
        changerNom : function(nom){
            this.nom = nom
        },
        presenterHotel : function(){
            console.log(`Cette chambre se nomme ${this.nom} elle coûte ${this.prix} et elle fait ${this.taille}`)
        }
    }
}

Ici on utilise le mot clé this pour accéder aux attributs interne à notre objet. Concrètement, this.nom accédera à la valeur de la variable nom.

Essayons de manipuler un peu nos objets. Je vais créer une chambre, modifier son nom et utiliser la méthode presenterHotel

function creerHotel(nom, prix, taille){
    return {
        nom : nom,
        prix : prix,
        taille : taille,
        changerNom : function(nom){
            this.nom = nom
        },
        presenterHotel : function(){
            console.log(`Cette chambre se nomme ${this.nom} elle coûte ${this.prix} et elle fait ${this.taille}`)
        }
    }
}

const chambre1 = creerHotel('Suite Royale', 1000,100);

chambre1.changerNom('Une modification');
chambre1.presenterHotel();

Ici, tout fonctionne. Notre objet as été modifié et on voit cette modification dans notre méthode presenterHotel() :

Cette chambre se nomme Une modification elle coûte 1000 et elle fait 100

On peux donc maintenant modifier dynamiquement nos objets. Vous pouvez aller aussi loin que vous voulez.

Il est possible de passer un autre objet dans nos méthodes. Il est même possible de modifier cet objet secondaire. Je vous invite à tester afin de mieux comprendre le fonctionnement des factory functions.

En conclusion

Les factory functions sont des outils extrêmement importants. Ils nous permettent de créer des objets intelligents possédant des fonctions et des attributs dynamiques.

Si vous voulez progresser en Javascript, je vous recommande de maîtriser les factory functions. Elles sont extrêmement présentes dans le paradigme de la programmation fonctionnelle, un système extrêmement utilisé par les développeurs Javascript.

Si cet article vous as plu, n’hésitez pas à télécharger mon livre PDF qui vous apprendra à bien débuter la programmation.

Vous abonner à notre newsletter

* champ requis

Laisser un commentaire

Fermer le menu
×
×

Panier