Dot-Net

一個介面是否應該繼承另一個介面

  • November 6, 2009

我似乎無法找到答案,只是想確保它是一個好的編碼標準。我有A許多不同類使用的介面,並且不想A改變介面。我遇到了一個新要求,它要求許多實現 Interface 的類都需要一個枚舉A,但並非所有類都需要這個枚舉。我不希望不需要這個新枚舉的類來實現這個新功能。所以我創建B了包含我需要添加的新枚舉的介面。然後我讓介面B繼承介面A,這是我關心的問題,一個介面可以繼承另一個介面嗎?為了繼續我的更改,我更改了需要新枚舉來實現介面的類B而不是 interface ,A因為它是由 interface 繼承的B。我考慮在需要它們的類中實現這兩個介面,但我在整個程式碼中都使用該介面,並且只想使用一個介面來查看類而不是兩個。

我希望這足夠清楚(可能太長了),但是如果有人可以就此給我一些建議,要麼我做對了,要麼我做錯了,請告訴我。

謝謝!

介面繼承是一個很好的工具,儘管你應該只在介面 B 真正可以替代介面 A 時使用它,而不僅僅是聚合鬆散相關的行為。

很難判斷它是否適合您的具體情況,但原則上使用這種做法並沒有錯。您一直在一流的 API 中看到它。僅從 .NET 框架中選擇一個常見範例:

public interface ICollection<T> : IEnumerable<T>, IEnumerable

引用自:https://stackoverflow.com/questions/1688808