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.