Design by Contract編程的最佳實踐是什麼?Design by Contract編程的最佳實踐
在大學裏我學到合同PARADIGMA (在OO環境) 我們學會了三種方式來解決這個問題設計:
1)總體規劃:涵蓋所有可能的特殊情況下,在其 效果(參考數學)
2)名義規劃:只有在滿足前提條件時'承諾'正確的效果。 (否則影響是不確定的)
3)防禦性編程:使用異常信號的方法
現在非法調用,我們在不同的場景OO都集中在每種情況下的正確使用,但我們還沒有學會什麼時候使用WHICH ... (主要是練習練習的策略..)
現在我覺得很奇怪我沒有問過我的老師(但是在課堂上,沒有人問過我)
就我個人而言,我從不使用名義現在,並傾向於取代先決條件(比如我用:拋出IllegalDivisionByZero,而不是說'前提條件:divider應該與零不同),並且只編程總的有意義的東西(所以我不會返回除零的常規值),但是這種方法是隻是基於個人發現和喜好。
所以我問你們:
有沒有什麼最佳實踐?
您可以檢查任何數組是否被排序爲先決條件。我們在C++中用斷言來做到這一點。 – 2009-04-13 20:31:01
檢查整個數組是否需要比實際進行二進制搜索更多的時間:) – MahdeTo 2009-04-13 20:38:59
只是一些想法:你可以檢查前提條件只在某些模式下,比如單元測試否? 進一步的前提條件可以說明,沒有測試,當然 – Peter 2009-04-13 20:59:36