我的要求是使用形状的名称并使用方法Draw('rectangle', 'l:10,w:20');
中的尺寸绘制该形状。
- 应根据形状的类型验证尺寸。
- 可以重构这些类以添加更多类或更改层次结构。
- 不应使用像反射这样的运行时检查。这个问题只需要通过类设计来解决。
- 不要在客户端方法
Draw
中使用if-else
或switch
语句。
要求:
public static void main()
{
// Provide the shape and it's dimensions
Draw('rectangle', 'l:10,w:20');
Draw('circle', 'r:15');
}
我创建了以下类。我考虑了低(松散(耦合和高内聚力,通过建立两个类层次结构,以便它们可以自行增长。我将绘制的责任保留给一个类,并为另一个类生成维度。
我的问题是关于创建这些对象并相互交互以实现我的要求。
public abstract class Shape()
{
Dimension dimension;
public void abstract SetDimentions(Dimension dimension);
public void abstract Draw()
}
public void Rectangle()
{
void override SetDimensions(RectangleDimension dimension)
{
}
void override Draw()
{
// Use the 'dimention' to draw
}
}
public void Circle()
{
void override SetDimensions(CircleDimension dimension)
{
}
void override Draw()
{
// Use the 'dimention' to draw
}
}
public class RectangleDimension
{
public int length {get; set; }
public int width { get; set; }
}
public class CircleDimension
{
public int circle { get; set; }
}
您需要在正在使用的任何 OOP 技术中使用反射。您收到类似 "circle"
的String
,您需要调用具有该名称的方法。
,这就是你在 C# 中可以做到这一点的方式。