問題比平時長,但我試圖闡述。請多多包涵和閱讀整個問題,它可能是一個有趣的問題派生一個類只是爲了識別類型的一個好主意嗎?
我有一個方法,當前接受具有兩個屬性List<X>
但代表兩個不同的實體,因此財產被恰當地命名爲R和S對象的.class結構是
class A
{
List<X> R;
List<X> S;
}
,我現在有接受A型的輸入和與兩個工作的方法(集合,下面方法簽名)
public void updateMe(A objA)
{
}
現在我甲肝ea的情況下,我需要重用此方法,但現在的情況是,我不需要區分實體,因此有一個單一的列表,List<X>
噸。
現在我的問題是我如何重構方法來處理一個單一列表,但仍然提供了在先前情況下區分這兩個列表的能力。
我的方法將更新這些集合,因此可以添加到列表中或從中刪除。
我現在的解決方案是創建新的類來表示從X派生出來的兩個不同的實體,然後將這個基類列表傳遞給我的方法,讓該方法更新這個基類,然後在閱讀它時我將能夠以確定哪個對象是什麼類型。
因此,我的新的班會
public class X1:X
{
}
public class X2:X
{
}
class A
{
List<X> R;
}
這是最好的解決辦法還是有,我可以拿這裏的任何其他辦法..我只是不似乎想擴展一個類的想法只是爲了識別不添加任何屬性類型..
它是如何在一種情況下需要區分兩個列表而不關心其他情況? – casablanca 2012-08-08 02:57:04
該方法的消費者在一種情況下呈現兩個列表單獨標識它們,而在另一種情況下它不會.. – user917670 2012-08-08 05:47:55