Article de reference

Modèle de création

Un patron de création est un modèle de conception logicielle permettant de créer des objets de manière adaptée à une situation particulière. La création d'objets disponible par ...

Un patron de création est un modèle de conception logicielle permettant de créer des objets de manière adaptée à une situation particulière. La création d'objets disponible par ailleurs (via le langage de programmation, par exemple ) pouvant parfois engendrer des limitations de conception , un mécanisme de création personnalisé permet d'obtenir une meilleure conception. Un patron de création vise à dissocier le système de la manière dont ses objets sont créés, composés et représentés. Il accroît la flexibilité du système quant au quoi, qui, comment et quand de la création d'objets.

Un modèle de création englobe deux aspects principaux. Le premier consiste à encapsuler les connaissances sur les classes concrètes utilisées par le système. Le second consiste à masquer la manière dont les instances de ces classes concrètes sont créées et combinées.

Les patrons de conception de création sont classés en patrons de création d'objets et patrons de création de classes. Les patrons de création d'objets délèguent une partie de la création de leurs objets à un autre objet, tandis que les patrons de création de classes délèguent la création de leurs objets à des sous-classes.

la composition d'objets que sur l'héritage de classes, l'accent est mis moins sur le codage en dur des comportements et davantage sur la définition d'un ensemble restreint de comportements de base, composables pour former des comportements plus complexes. Le codage en dur des comportements est inflexible car il exige de redéfinir ou de réimplémenter l'ensemble du code pour modifier une partie de la conception. De plus, il ne favorise pas la réutilisation et complique le suivi des erreurs. Pour ces raisons, les patrons de conception de création sont plus utiles que le codage en dur des comportements. Ils rendent la conception plus flexible. Ils offrent différentes manières de supprimer les références explicites dans les classes concrètes du code qui doit les instancier. Autrement dit, ils créent une indépendance entre les objets et les classes.

Envisagez d'appliquer des modèles de création lorsque :

  • Un système doit être indépendant de la manière dont ses objets et produits sont créés.
  • Un ensemble d'objets liés est conçu pour être utilisé ensemble.
  • Masquer les implémentations d'une bibliothèque de classes ou d'un produit, en ne révélant que leurs interfaces.
  • Construction de différentes représentations d'objets complexes indépendants.
  • Une classe souhaite que sa sous-classe implémente l'objet qu'elle crée.
  • Les instanciations de classe sont spécifiées lors de l'exécution.
  • Il doit exister une seule instance et le client peut accéder à cette instance à tout moment.
  • L'instance doit pouvoir être extensible sans être modifiée.

Structure

Diagramme de classes du modèle de création.

Vous trouverez ci-dessous un diagramme de classes simple, commun à la plupart des modèles de création. Notez que différents modèles de création requièrent des classes supplémentaires et différentes.

Participants :

  • Créateur : Déclare une interface d'objet. Renvoie un objet.
  • ConcreteCreator : Implémente l'interface de l'objet.

Exemples

Voici quelques exemples de modèles de conception créationnels :

Modèle d'usine abstrait
une classe demande les objets dont elle a besoin à un objet fabrique au lieu de créer directement les objets.
Modèle de méthode de fabrication
centraliser la création d'un objet d'un type spécifique en choisissant l'une des implémentations.
Modèle de constructeur
séparer la construction d'un objet complexe de sa représentation afin que le même processus de construction puisse créer différentes représentations.
Modèle d'injection de dépendances
Une classe accepte les objets dont elle a besoin d'un injecteur au lieu de créer directement ces objets.
Modèle d'initialisation paresseuse
tactique consistant à retarder la création d'un objet, le calcul d'une valeur ou tout autre processus coûteux jusqu'à ce qu'il soit nécessaire pour la première fois.
Modèle de pool d'objets
Évitez l'acquisition et la libération coûteuses de ressources en recyclant les objets qui ne sont plus utilisés.
Modèle prototype
utilisé lorsque le type d'objets à créer est déterminé par une instance prototype, qui est clonée pour produire de nouveaux objets.
Modèle Singleton
limiter l'instanciation d'une classe à un seul objet.