问题比平时长,但我试图阐述。请多多包涵和阅读整个问题,它可能是一个有趣的问题派生一个类只是为了识别类型的一个好主意吗?
我有一个方法,当前接受具有两个属性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