我有一堆系統,我們打電話給他們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
}
}
摘要
在超基類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)
我有一種感覺,抽象和超級基類是相似的。 A,B,C系統確實具有強大的耦合。有一個行業標準,但不必遵循,所以每個人都可以採用標準或改變他們的標準。在匆忙中,我選擇了系統:) – Xaisoft
順便說一句好話。 – Xaisoft