Description:
Le but pattern Builder est d'abstraire la
construction d'objets complexes de leur implantation de sorte qu'un client puisse
créer ces objets complexes sans devoir se préoccuper des
différentes d’implantation.
Exemple:
Lorsqu'un système veut créer une
liasse (une liste donc) de documents comprenant notamment différents types de documents A,B,C... regroupés dans un même objet.
But:
Rendre la classe Client indépendante de
l'ensemble (architecture), abstraire la construction d'objets complexes de leur
implantation.
Solution:
- On introduit une classe abstraite
ConstructeurAbstrait contenant les signatures des méthodes permettant
d'ajouter chaque type de document.
- On introduit une classe
abstraite Liasse contenant un attribut de type liste qui permet
de stocker les différents types d'objets, cette classe contient la signature
d'une méthode permettant d'ajouter des objets dans la liste.
Avantages:
- L'objet Client ne doit pas se préoccuper des différences
d'implantation.
Diagramme de classes:
Participants:
- ConstructeurAbstrait est la classe introduisant les signatures des méthodes construisant les différentes parties du produit ainsi que la signature de la méthode permettant d'obtenir le produit, une fois celui-ci construit.
- ConstructeurConcret est la classe concrète implantant les méthodes du constructeur abstrait.
- Produit est la classe définissant le produit.Elle peut être abstraite et posséder plusieurs sous-classe concrètes en cas d'implantations différentes.
- Client est la classe chargée de construire le produit au travers de l'interface du constructeur abstrait.
Collaborations:
Le client crée un constructeur
concret en fonction du format souhaité et reçois le résultat.
Domaines d'utilisation:
- Un client a besoin de
construire des objets complexes sans connaître leur implantation .
- Un client a besoin de
construire des objets complexes ayant plusieurs représentations ou
implantations
Aucun commentaire:
Enregistrer un commentaire