有三种常用方法

时间:2014-08-27 07:17:46

标签: c#

我在数据访问项目中有3个类,所有3个类都有许多数据访问方法(GetSomeListInsertSomeDataUpdateSomeData ...)。 所有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;
    }
}

2 个答案:

答案 0 :(得分:2)

为所有类创建超类,并为超类创建常用方法实现。

答案 1 :(得分:0)

一个好方法是:

  

一种可能的解决方案是定义一个将被继承的公共类。这是好方法吗?

但在您的代码示例中,没有必要拥有FirstMethodSecondMethodThirdMethod。 您可以直接从派生类调用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;

    }

 }