Mar*_*ijn 2 c# methods subclass
我有一个带有两个子类的超类.这两个子类都有一个方法,用于检查章节是否包含内容.对于子类1,此方法是HasContent(int chapterID),对于子类2,这是HasContent(int chapterID,int institution).如您所见,子类2有一个额外的参数.两种方法的目的是相同的.
我想将方法HasContent放在超类中.你觉得我需要这样做吗?如果是这样,我该如何实现呢?或者将两个方法放在他们自己的子类中更明智?
编辑:
HasDocuments的主体如下所示:Subclass1:
Database DB = new Database();
int res = DB.ExecuteSpRetVal(chapterID, mInstitutionID);
if (res > 0)
return true;
else
return false;
Run Code Online (Sandbox Code Playgroud)
Subclass2:
Database DB = new Database();
int res = DB.ExecuteSpRetVal(chapterID);
if (res > 0)
return true;
else
return false;
Run Code Online (Sandbox Code Playgroud)
编辑:根据问题更新进行更新.
既然你在两种方法中显然都有相同的逻辑,我会像这样重构它:
abstract class SuperClass
{
protected bool HasContentImpl(int chapterID, int institution)
{
Database db = new Database();
int result;
if (institution >= 0) // assuming negative numbers are out of range
result = db.ExecuteSpRetVal(chapterID, institution);
else
result = db.ExecuteSpRetVal(chapterID);
return result > 0;
}
}
class SubClass1 : SuperClass
{
public bool HasContent(int chapterID)
{
return base.HasContentImpl(chapterID, -1);
}
}
class SubClass2 : SuperClass
{
public bool HasContent(int chapterID, int institution)
{
return base.HasContentImpl(chapterID, institution);
}
}
Run Code Online (Sandbox Code Playgroud)