【发布时间】:2012-08-31 10:10:21
【问题描述】:
有些类中有一些方法和成员变量看起来非常相似,我想我可以重构和抽象它们...但我不确定这是否是正确的做法:
例如,假设我有这两个类:
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 ...
}
所以我在考虑创建一个抽象类并将这些方法和成员变量分解并放入该抽象类中是否正确:
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.
}
【问题讨论】:
-
作为一种保持代码 DRY 的机制,这看起来很完美,并且在您继续开发更多 CommonField 类型时将继续提供好处。
标签: c# abstract-class