Aller au contenu

Patrons de conception/Créateur

Un livre de Wikilivres.
Version datée du 23 juillet 2017 à 13:17 par JackBot (discussion | contributions) (Formatage, ajout de code)
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

Bibliothèque

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

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.