C# – Design Pattern – Prototype

Présentation
Le design pattern Prototype est un modèle de conception de création d’objet. Son but est de créer un objet / une grappe d’objets en initialisant ses propriétés en recopiant les valeurs à partir de propriétés d’un autre objet / grappe d’objets.
On peut distinguer deux types de recopie :

  • La recopie superficielle qui consiste à recopier la valeur des attributs dont le type est qualifié de « type valeur » et de type chaînes de caractères (string), et les références d’attributs dont le type est un « types référence »
  • La recopie profonde qui réalise les mêmes opérations pour les attributs dont le type est qualifié de « type valeur », et qui réalise le même traitement en cascade pour leurs attributs de « type référence »

Diagramme de classes
Voici un exemple d’implémentation du modèle de conception avec une recopie superficielle des données :

Diagramme de classes du design pattern Prototype
Dans les classes implémentant l’interface IPrototype, la méthode polymorphe Clone() permet de réaliser une copie des données, entre l’instance sur laquelle cette méthode est appliquée (ConcretePrototypeA et ConcretePrototypeB) et l’instance retournée.

En C#, le clonage superficiel est pris en charge par la méthode MemberwiseClone() de la classe Object.

Exemple d’implémentation en C#
Pour consulter un exemple d’implémentation de ce design pattern en C#, cliquer ici.

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j'alterne les missions de formation et d'ingénierie avec cette plateforme. J'écris ce blog pour transmettre mes connaissances à tout développeur, qu'il soit débutant ou expérimenté.