1
我要求是使用形状的名称,并绘制形状与尺寸像的方法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; }
}
我不能使用反射。类层次结构可以修改或者添加新的类。 –
@wonderfulworld然后你可以用if-else条件检查字符串值,并在每种情况下调用相应的方法。 –
你能用代码解释吗?我试图避免''if-else'''和'''switch'''语句。 –