Aller au contenu

Prototype

Contexte : Spécifier les types d’objets à créer en utilisant une instance prototype, et créer de nouveaux objets en copiant ce prototype.

public abstract class Prototype
{
public abstract Prototype Clone();
}
public class ConcretePrototype : Prototype
{
public int Data { get; set; }
public override Prototype Clone() => (ConcretePrototype)MemberwiseClone();
}
// Usage
var original = new ConcretePrototype { Data = 42 };
var clone = (ConcretePrototype)original.Clone();
Console.WriteLine(clone.Data); // 42

Copie de documents complexes : Un éditeur de document clone un modèle de document (en‑têtes, pieds de page, styles) puis modifie la copie pour un nouveau client.

Exemple : Dans .NET, l’interface ICloneable (bien que non recommandée) est un pattern Prototype. Plus pratiquement, MemberwiseClone est utilisé pour la copie superficielle. Dans les moteurs de jeu, les préfabriqués sont des prototypes.