如何重构这些 类 以相互交互?
How to refactor these classes to interact each other?
我的 要求 是使用 形状 的名称并用 尺寸 [=36] 绘制该形状=] 就像在方法 Draw('rectangle', 'l:10,w:20');
中一样。
- 应该根据形状类型验证尺寸。
- 可以重构这些 class 以添加更多 class 或更改层次结构。
- 不应该使用 运行 像 反射 这样的时间检查。问题需要通过 class 设计解决。
- 不要在客户端方法
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');
}
我创建了以下 classes。我通过建立两个 class 层次结构来考虑 低(松)耦合和高内聚 ,这样它们就可以自行增长。我负责绘制一个 class 并为另一个 class 生成尺寸。
我的问题是关于创建这些对象并相互交互以实现我的要求。
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; }
}
我的 要求 是使用 形状 的名称并用 尺寸 [=36] 绘制该形状=] 就像在方法 Draw('rectangle', 'l:10,w:20');
中一样。
- 应该根据形状类型验证尺寸。
- 可以重构这些 class 以添加更多 class 或更改层次结构。
- 不应该使用 运行 像 反射 这样的时间检查。问题需要通过 class 设计解决。
- 不要在客户端方法
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');
}
我创建了以下 classes。我通过建立两个 class 层次结构来考虑 低(松)耦合和高内聚 ,这样它们就可以自行增长。我负责绘制一个 class 并为另一个 class 生成尺寸。
我的问题是关于创建这些对象并相互交互以实现我的要求。
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; }
}