我在数据访问项目中有3个类,所有3个类都有许多数据访问方法(GetSomeList
,InsertSomeData
,UpdateSomeData
...)。
所有3个类都有几个相同的方法。
我不想写相同的方法3次。
这里最好的方法是什么?
一种可能的解决方案是定义一个将被继承的公共类。 这是好方法吗?
示例:
public abstract class CommonDataLayer
{
public int CommonMethod()
{
Random random = new Random();
int randomNumber = random.Next(0, 100);
return randomNumber;
}
}
public class FirstDataLayer : CommonDataLayer
{
public int FirstMethod()
{
return CommonMethod() + 1;
}
}
public class SecondDataLayer : CommonDataLayer
{
public int SecondMethod()
{
return CommonMethod() + 2;
}
}
public class ThirtDataLayer : CommonDataLayer
{
public int ThirtMethod()
{
return CommonMethod() +3;
}
}
答案 0 :(得分:2)
为所有类创建超类,并为超类创建常用方法实现。
答案 1 :(得分:0)
一个好方法是:
一种可能的解决方案是定义一个将被继承的公共类。这是好方法吗?
是
但在您的代码示例中,没有必要拥有FirstMethod
,SecondMethod
和ThirdMethod
。
您可以直接从派生类调用CommonMethod
。如果派生方法需要特定功能,则可以覆盖CommonMethod。
public class FirstDataLayer : CommonDataLayer
{
// This class uses CommonMethod from the Base Class
}
public class SecondDataLayer : CommonDataLayer
{
@Override
public int CommonMethod(){
// EDIT code
// Class specific implementation
return base.CommonMethod() +1;
}
}
public class ThirdDataLayer : CommonDataLayer
{
public int ThirdMethod(){
// Class specific implementation
return base.CommonMethod() +2;
}
}