2017-09-26 70 views
2

我的意思是像時間耦合的設計氣味。 Void方法在其簽名中沒有類型安全的嚴格描述,說明爲什麼以及何時應該調用它。所以只需要文檔。使用它是基於對副作用正確性的信心。是接口代碼異味中的void方法嗎?

那麼我們應該嘗試擺脫接口中的void方法嗎?

回答

0

虛空方法是不是設計的氣味。面向對象(不同於函數式編程)允許副作用,例如改變調用方法的對象的內部。這個是正常的。

這是否好是另一個問題。功能性編程在表現力方面肯定更加強大。編寫幾乎不可能被濫用的代碼是可能的(編譯時它可行)。

此外,void方法通常不會導致時間耦合。時間耦合意味着,在方法之前或之後必須存在另一種方法,否則該方法調用沒有意義。

當然,你必須知道語義方法調用的,換句話說,是什麼意思。這是可以預料的,並且在函數式編程中也是如此,對於具有相同簽名的函數也是如此。

+0

無效方法在無狀態時沒有時間耦合。但是無狀態無效方法只能通過可變參數提供有效載荷,這實際上是一種代碼味道。 – SerG

相關問題