Le design pattern Prototype est un patron de conception créatif qui permet de créer de nouveaux objets en copiant un objet existant, appelé prototype. L'idée est de créer de nouveaux objets sans dépendre de leur classe concrète, en utilisant une copie de l'objet existant comme point de départ.
En C#, le Prototype est souvent mis en œuvre en utilisant le mécanisme de clonage, soit via l'interface `ICloneable`, soit en implémentant une méthode spécifique de clonage.
Voici un exemple simple d'implémentation du design pattern Prototype en C# :
```csharp
using System;
// Interface ou classe de base du prototype
public interface IPrototype<T>
{
T Clone();
}
// Exemple de classe concrète
public class ConcretePrototype : IPrototype<ConcretePrototype>
{
public int Id { get; set; }
public string Name { get; set; }
public ConcretePrototype(int id, string name)
{
Id = id;
Name = name;
}
// Méthode de clonage
public ConcretePrototype Clone()
{
// Utilisation du constructeur de copie ou du clonage profond selon les besoins
return new ConcretePrototype(Id, Name);
}
public void DisplayInfo()
{
Console.WriteLine($"Id: {Id}, Name: {Name}");
}
}
class Program
{
static void Main()
{
// Création d'un prototype
ConcretePrototype prototype = new ConcretePrototype(1, "Prototype");
// Clonage du prototype
ConcretePrototype clonedObject = prototype.Clone();
// Modification du clone
clonedObject.Name = "Cloned";
// Affichage des informations
Console.WriteLine("Original Object:");
prototype.DisplayInfo();
Console.WriteLine("\nCloned Object:");
clonedObject.DisplayInfo();
}
}
```
Dans cet exemple, `ConcretePrototype` implémente l'interface `IPrototype` avec une méthode de clonage (`Clone`). Lorsque nous créons un objet `ConcretePrototype`, nous pouvons le cloner en utilisant la méthode `Clone`, ce qui donne une copie indépendante de l'objet original. Ce modèle est particulièrement utile lorsque la création d'un nouvel objet est plus complexe ou coûteuse que la copie d'un objet existant.
Aucun commentaire:
Enregistrer un commentaire