« Patrons de conception/Prototype » : différence entre les versions

Contenu supprimé Contenu ajouté
wikif
Ligne 1 :
{{Voir homonymes|Prototype}}
{{ébauche informatique}}
 
Le [[motif de conception]] '''prototype''' est utilisé lorsque la création d'une [[instance]] est complexe ou consommatrice en temps. Plutôt que créer plusieurs instances de la classe, on copie la première instance et on modifie la copie de façon appropriée.
 
Pour implanter ce motif, il faut déclarer une classe abstraite spécifiant une méthode virtuelle pure appelée ''clone()''. Toutes classes nécessitant un [[constructeurConstructeur (programmation informatique)|constructeur]] [[polymorphismePolymorphisme (informatique)|polymorphique]] dérivera de cette classe abstraite et implentera la méthode ''clone()''.
 
Le client de cette classe, au lieu d'écrire du code invoquant directement l'opérateur "new" sur une classe explicitement connue, appelera la méthode ''clone()'' sur le prototype ou passera par un mécanisme fourni par un autre motif de conception (par exemple une méthode de [[fabriqueFabrique (Motifmotif de conception)|fabrique]] avec un paramètre désignant la classe concrète à instancier).
 
== Structure ==
 
Le [[diagramme de classes]] est le suivant :
 
[[Image:Prototype classdia.png]]
Ligne 134 :
== Exemples ==
 
Exemple où '''prototype''' s'applique : supposons une classe pour interroger une [[base de données]]. AÀ l'instanciation de cette classe on se connecte et on récupére les données de la base avant d'effectuer tous types de manipulation. Par la suite il sera plus performant pour les futures instances de cette classe de continuer à manipuler ces données que de réinterroger la base. Le premier objet de connexion à la base de données aura été créé directement puis initialisé. Les objets suivants seront une copie de celui-ci et donc ne nécessiteront pas de phase d'initialisation.
 
{{ébauchePortail informatique}}
 
[[Catégorie:Motif de conception]]