public interface IComponent
public class Circle : IComponent
public int Radius { get; set; }
public IComponent Clone()
Circle newCircle = new Circle();
newCircle.Radius = Radius;
Console.WriteLine("Rendering a Circle");
public void Duplicate(IComponent component)
IComponent newComponent = component.Clone();
Console.Write("component duplicated/cloned");
public static void Main()
Circle circle = new Circle() { Radius = 10 };
ContextMenu cmenu = new ContextMenu();