Comments
This pattern creates the kind of object using its prototype. In other words, while creating the object of Prototype object, the class actually creates a clone of it and returns it as prototype.You can see here, we have used MemberwiseClone method to clone the prototype when required.
Code
{
// normal implementation
public abstract Prototype Clone();
}
public class ConcretePrototype1 : Prototype
{
public override Prototype Clone()
{
return (Prototype)this.MemberwiseClone(); // Clones the concrete class.
}
}
public class ConcretePrototype2 : Prototype
{
public override Prototype Clone()
{
return (Prototype)this.MemberwiseClone(); // Clones the concrete class.
}
}