今天的面试题:请问以下设计会有什么问题,应该怎样优化?
印象中的代码:
class Shape
{
public int Type { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Radius { get; set; }
}
public double total_Area(List<Shape> shapeList)
{
double area = 0d;
if (shapeList != null && shapeList.Count > 0)
{
foreach (Shape shape in shapeList)
{
if (shape.Type == 1)
area += Math.PI * shape.Radius * shape.Radius;
else if (shape.Type == 2)
area += shape.Width * shape.Length;
}
}
return area;
}
现在如果要加上三角形的面积计算公式:长*宽*1/2。
应该怎么加?这样设计会有什么问题?提供怎样的优化解决方案?