我有一堆系统,让我们称它们为A, B, C, D, E, F, G, H, I, J
.
它们都有相似的方法和属性。有些包含完全相同的方法和属性,有些可能略有不同,有些可能差异很大。现在,我每个系统都有很多重复的代码。例如,我有一个名为GetPropertyInformation()
这是为每个系统定义的。我试图找出哪种方法是减少重复代码的最佳方法,或者以下方法之一可能不是可行的方法:
界面
public Interface ISystem
{
public void GetPropertyInformation();
//Other methods to implement
}
public class A : ISystem
{
public void GetPropertyInformation()
{
//Code here
}
}
Abstract
public abstract class System
{
public virtual void GetPropertyInformation()
{
//Standard Code here
}
}
public class B : System
{
public override void GetPropertyInformation()
{
//B specific code here
}
}
超级基类中的虚拟方法
public class System
{
public virtual void GetPropertyInformation()
{
//System Code
}
}
public class C : System
{
public override void GetPropertyInformation()
{
//C Code
}
}
有一个问题,尽管可能很愚蠢,但让我们假设我采用了抽象方法,并且我想覆盖GetPropertyInformation
,但我需要向它传递一个额外的参数,这可能吗?还是我必须在抽象类中创建另一个方法?例如,GetPropertyInformation(x)