设计:具有相同实现但方法名称不同的类

Dro*_*per 1 oop

我有多个类,它们对不同的命名方法有类似的实现:

class MyClassX
{
   public int MyClassXIntMethod(){}
   public string MyClassXStringMethod(){}
}

class MyClassY
{
   public int MyClassYIntMethod(){}
   public string MyClassYStringMethod(){}
}
Run Code Online (Sandbox Code Playgroud)

类中的方法具有类似的实现,但由于方法的名称不同(由于第三方约束),我不能使用继承.

我正在寻找一种优雅的解决方案,它比一遍又一遍地实现相同的功能更好.

Kee*_*ijk 8

经典答案恕我直言,每个第三方主叫方使用adpater模式.不要盲目申请,但先看看它是否合适.

class MyClassXAdapter
{
   IMyInterface _myImpClass

   public int MyClassXIntMethod(){ return _myImpClass.IntMethod()}
   public string MyClassXStringMethod(){ return _myImpClass.StringMethod() }
}

class MyClassYAdapter
{
   IMyInterface _myImpClass

   public int MyClassYIntMethod(){ return _myImpClass.IntMethod()}
   public string MyClassYStringMethod(){ _myImpClass.StringMethod() }
}

class MyClassImplementation :IMyInterface
{
   public int IntMethod(){}
   public string StringMethod(){}
}
Run Code Online (Sandbox Code Playgroud)