public static Shaped CreateShape(string shaped) { Shaped shap = null; switch (shaped) { case "circle": Console.WriteLine("请输入圆的半径"); double Rad = Convert.ToDouble(Console.ReadLine()); shap = new Circle(Rad); break; case "rectangular": Console.WriteLine("请输入矩形的长和宽"); double Len = Convert.ToDouble(Console.ReadLine()); double Wid = Convert.ToDouble(Console.ReadLine()); shap = new Rectangular(Len, Wid); break; case "triangle": Console.WriteLine("请输入三角形的三边长"); double Ed1 = Convert.ToDouble(Console.ReadLine()); double Ed2 = Convert.ToDouble(Console.ReadLine()); double Ed3 = Convert.ToDouble(Console.ReadLine()); shap = new Triangle(Ed1, Ed2, Ed3); break; case "square": Console.WriteLine("请输入正方形的边长"); double Ed0 = Convert.ToDouble(Console.ReadLine()); shap = new Square(Ed0); break; } return(shap); }
static void Main(string[] args) { string[] shapefactory = new string[4]; shapefactory[0] = "circle"; shapefactory[1] = "rectangular"; shapefactory[2] = "triangle"; shapefactory[3] = "square"; foreach (string SF in shapefactory) { Shaped shaped = ShapeFactory.CreateShape(SF); Console.WriteLine("shaped Area is {0}", shaped.GetArea()); } }