2015-10-26 71 views
0

有時人們想要隱藏在派生類中的方法,但不想違反里氏替換原則,所以他們把它留在那裏,而不是拋出一個NotSupportedException,可能帶有註釋此方法拋出。在派生類中拋出NotSupportedExceptions被認爲是不好的做法嗎?

是不是這樣的做法同樣糟糕,如果在這個意義上不差,它從一個編譯時問題轉移問題的運行問題,如果人沒有去繞過導出之前閱讀每一個方法的每個評論班?

回答

2

我同意,如果一個子類不支持的方法在其超則作爲一項規則,它可能不應該擴展該類別。除了需要運行時檢查像你提到的(這可能是在情況下,優化性能是必要的一個問題)來處理可能的例外,但是,我認爲這種做法更大的問題將是,它改變從子類責任到每一個類,需要使用它,使得軟件封裝更少,結果難以維護和推理(軟件變得越大,問題就越嚴重)。

話雖這麼說,這個問題本質上是主觀的。如果這種方法適用於你,盡一切辦法去做。我個人更喜歡簡單的API而不是複雜的API,但那就是我。

相關問題