Le Prototype est un patron de conception de création qui permet de cloner des objets - même complexes - sans se coupler à leur classe.
Toutes les classes prototype devraient avoir une interface commune rendant possible la copie des objets, même sans connaître leur classe concrète. Les objets prototype peuvent créer des copies complètes puisqu’ils peuvent accéder aux attributs privés des autres objets de la même classe.
Exemples d’utilisation : Le prototype est [prêt à l’emploi] (http://php.net/manual/en/language.oop5.cloning.php) dans PHP. Vous pouvez utiliser le mot-clef clone pour créer une copie exacte d’un objet. Pour ajouter la prise en charge du clonage à une classe, vous devez implémenter une méthode __clone.
Identification : Le prototype peut facilement être reconnu grâce aux méthodes clone ou copier, etc.
Exemple conceptuel
Dans cet exemple, nous allons voir la structure du Prototype et répondre aux questions suivantes :
Que contiennent les classes ?
Quels rôles jouent-elles ?
Comment les éléments du patron sont-ils reliés ?
Après avoir étudié la structure du patron, vous pourrez plus facilement comprendre l’exemple suivant qui est basé sur un cas d’utilisation réel en PHP.
index.php: Exemple conceptuel
Output.txt: Résultat de l’exécution
Analogie du monde réel
Le Prototype fournit un moyen pratique de répliquer des objets existants plutôt que d’essayer de reconstruire les objets en copiant directement leurs attributs. L’approche directe va non seulement coupler les classes aux objets clonés, mais de plus elle ne vous permet pas de copier les attributs privés. Le prototype vous permet de cloner l’objet à l’intérieur de la classe clonée, où l’accès aux attributs privés de la classe n’est pas restreint.
Cet exemple vous montre comment cloner une page complexe en utilisant le patron de conception prototype. La classe Page possède beaucoup d’attributs privés qui seront recopiés dans l’objet cloné grâce au prototype.