<aside> 📘

Monteur (Builder) : permet de construire des objets complexes étape par étape.

</aside>

<aside> 🎯

Permet de produire différentes variations ou représentations d’un objet en utilisant le même code de construction.

</aside>

image.png

☹️ Problème

<aside> 🥵

Objet complexe qui nécessite une initialisation fastidieuse, composée de plusieurs parties avec de nombreux champs et objets imbriqués.

</aside>

Plusieurs constructeurs dans le code

image.png

Constructeur avec trop de paramètres

image.png

🙂 Solution

<aside> ✅

Extraire le code du constructeur d’objet de sa classe et de le déplacer dans des objets distincts appelés monteurs (builder).

</aside>

Monteur (Builder)

Le monteur empêche les autres objets d’accéder au produit pendant sa construction.

image.png


Ces monteurs exécutent la même tâche, mais de manière différente.

image.png

Directeur (Director)

Le directeur connait les étapes à suivre pour construire un produit fonctionnel.

image.png