在某些类中有一些方法和成员变量看起来非常相似,我认为我可以重构它们并将它们抽象出来......但我不确定这是否是正确的方法:
例如,假设我有这两个类:
public class CaseField
{
private int mlObjectKey = CommonIndepClass.GetNextObjectKey();
public int ObjectKey
{
get
{
return mlObjectKey;
}
}
// some other specific methods...
}
然后是另一个班级:
public class AsOfField
{
private int mlObjectKey = CommonIndepClass.GetNextObjectKey();
public int ObjectKey
{
get
{
return mlObjectKey;
}
}
// some specific methods ...
}
所以我在想是否正确创建一个Abstract类并将这些方法和成员变量分解并将它们放在那个抽象类中:
public abstract class CommonFields
{
private int mlObjectKey = CommonIndepClass.GetNextObjectKey();
public int ObjectKey
{
get
{
return mlObjectKey;
}
}
}
public class CaseField: CommonFields
{
// just its own specific methods and member variables.
}
public class AsOfField: CommonFields
{
// just its own specific methods and member variables.
}
答案 0 :(得分:2)
这似乎并非不合理。
另一种方法是使用mixins实现此功能。这将允许您定义一个具有共同功能的类,但您不必实现公共基类。有关详细信息,请参阅this SO answer。