static void Main(string[] args) { var factory = new ShapeFactory(); // треугольник I2dShape triangle = factory.GetShape(ShapeType.Triangle, 3, 4, 5); Console.WriteLine("Triangle has square {0}, it's {1}a right angle triangle.", triangle.GetSquare(), ((Triangle)triangle).IsRightAngle == true ? "" : "not "); // круг I2dShape circle = factory.GetShape(ShapeType.Circle, 5.5); Console.WriteLine("Circle has square {0}", circle.GetSquare()); Console.ReadKey(); }
/// <summary> /// Предоставляет экземпляр фигуры с указанными параметрами. Обрабатывает исключения, записывает сообщение в ErrorMessage и возвращает null. /// </summary> /// <param name="shapeType">Тип фигуры</param> /// <param name="shapeParams">Массив параметров фигуры. /// Треугольниrк - длины трех сторон, /// Круг - радиус /// </param> /// <returns>Объект фигуры</returns> public I2dShape GetShape(ShapeType shapeType, params double[] shapeParams) { I2dShape result = null; try { switch (shapeType) { case ShapeType.Triangle: result = new Triangle(shapeParams); break; case ShapeType.Circle: result = new Circle(shapeParams[0]); break; } } catch (ArgumentException e) { ErrorMessage = e.Message; } return(result); }