Patrons de conception/Créateur
| Patron de conception | |
|---|---|
| Catégorie : GRASP | |
| Nom français : | Créateur |
| Nom anglais : | Creator |
| Assigner la création d'objets à la classe qui l'utilise | |
Le principe du créateur est d'assigner la responsabilité de la création des instances d'une classe A.
Cette responsabilité est assignée à la classe B si au moins l'une des conditions suivantes est vraie :
- B contient des instances de A,
- B est une agrégation d'instances de A,
- B utilise des instances de A de manière détaillée,
- B possède des informations pour créer des instances de A.
Exemples
[modifier | modifier le wikicode]Bibliothèque
[modifier | modifier le wikicode]Dans un logiciel de gestion de bibliothèque, nous avons créé les classes Bibliothèque, Catalogue et Livre. Nous voulons ajouter une méthode de création de livres. À quelle classe assigner cette responsabilité ?
La classe dont l'utilisation est très liée à celle de Livre est la classe Catalogue. On lui ajoute donc cette méthode de création de livre.
Facturation
[modifier | modifier le wikicode]Dans un logiciel de gestion de vente, nous avons les classes et attributs suivants :
Facture- Contient un ensemble de produit facturé. Attribut :
client, ProduitFacturé- Contient un lien vers la description d'un article. Attribut :
quantité, Article- Description d'un article. Attributs :
nom,prix_unitaire(TTC),identifiant.
À quelle(s) classe(s) assigner la responsabilité d'ajouter un nouveau produit facturé (une nouvelle instance de la classe ProduitFacturé) ?
La classe Facture contient des instances de ProduitFacturé.
Elle est donc responsable de leur création.
