0
在C#,類B
用作唯一基類三類C
,D
和E
的。代碼重構:2但不是所有基類的派生類具有相同的覆蓋方法
B
具有virtual
方法,其在C
,D
和E
覆蓋。 C
和D
具有相同的執行重寫方法的,從所述一個在E
不同。
C
和D
沒有其他的共同的東西。
如何刪除C
和D
之間的代碼重複?我正在考慮
的兩種方法:
創建
B
派生新類F
並C
和F
而不是B
衍生D
。將公共覆蓋方法移至C
和D
至F
。我認爲這是過度殺傷,因爲C
和D
沒有其他共同點。創建
B
的新方法,從虛擬方法不同的名稱,並在C
和D
相同實施共同覆蓋的方法。然後改變的共同覆蓋方法的實現在C
和D
,只是一個調用新的方法B
。這是一個優雅的解決方案?它是一些設計模式還是面向對象的技巧?
謝謝。
我不加C#的標籤,因爲我覺得這個問題是不是C#具體,但一般所有的面向對象的語言。