除了單元測試,還有另一種方式,也可以在程式邏輯有誤時,幫你主動抓出來。這是一種設計風格:依合約設計(Design by Contract)。
舉例,今天當一段程式在某種情況下一定不會 work 時,我們會做的事就是跟呼叫端說好,這種情況你不能來呼叫我。此時當我被呼叫了,如果我採用 Design by Contract 設計,那麼所有會造成後續出錯或是有錯誤表現的場景就都會被我排除掉了。
Design by Contract 在當代程式設計中並不流行,主因之一還是語言不支援。
本篇將試著用 Java 做出一個簡單的 Desing by Contract 工具,並用它來檢查計算 odd 的 pre-condition。