Ce patron permet de définir le genre d'objet à créer en dupliquant une instance qui sert d'exemple - le prototype.
L'objectif de ce patron est d'économiser le temps nécessaire pour instancier des objets.
Selon ce patron, une application comporte une instance d'un objet, qui sert de prototype.
Cet objet comporte une méthode clone pour créer des duplicata.
Des langages de programmation comme PHP ont une méthode clone incorporée dans tous les objets.
Prototype (ColorPrototype)
declares an interface for cloning itself
ConcretePrototype (Color)
implements an operation for cloning itself
Client (ColorManager)
creates a new object by asking a prototype to clone itself