0

某些类中有一些方法和成员变量看起来非常相似,我想我可以重构和抽象它们......但我不确定这是否是正确的方法:

例如,假设我有这两个类:

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. 
}
4

1 回答 1

2

这似乎不无道理。

另一种方法是使用mixins来实现此功能。这将允许您定义一个具有通用功能的类,但您不必实现通用基类。有关更多详细信息,请参阅此 SO 答案

于 2012-09-06T14:46:42.367 回答