예제 #1
0
        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();
        }
예제 #2
0
        /// <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);
        }