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'''語句。 –