C#
class Program
{
static void Main(string[] args)
{
IFigure figure = new Rectangle(30,40);
IFigure clonedFigure = figure.Clone(); // прототип
figure = new Circle(30);
clonedFigure=figure.Clone(); // прототип
}
}
interface IFigure
{
IFigure Clone();
}
class Rectangle: IFigure
{
int width;
int height;
public Rectangle(int w, int h)
{
width = w;
height = h;
}
public IFigure Clone()
{
return new Rectangle(this.width, this.height);
}
}
class Circle : IFigure
{
int radius;
public Circle(int r)
{
radius = r;
}
public IFigure Clone()
{
return new Circle(this.radius);
}
}