先決條件
編輯在計算機編程中,先決條件是一個條件或謂詞,在執行某些代碼部分或正式規范中的操作之前必須始終為真。如果違反了一個前提條件,這段代碼的效果就會變得不確定,因此可能會也可能不會執行其預期的工作。由于不正確的前提條件,可能會出現安全問題。通常情況下,前提條件被簡單地包含在受影響的代碼部分的文檔中。前提條件有時會在代碼本身中使用防護措施或斷言進行測試,有些語言有特定的語法結構來做這些工作。例如:階乘只被定義為大于或等于零的整數。因此,一個計算輸入數字階乘的程序會有這樣的前提條件:該數字是一個整數,并且大于或等于零。在面向對象的編程中,面向對象的軟件開發中的前提條件是契約設計的一個重要組成部分。契約設計還包括后置條件和類不變量的概念。任何例程的先決條件都定義了對對象狀態的任何約束,這些約束是成功執行的必要條件。從程序開發者的角度來看,這構成了合約中例程調用者的部分。然后,調用者有義務在調用例程之前確保前提條件成立。調用者努力的回報表現在被調用例程的后置條件中。
Eiffel例子
編輯下面的例子中用Eiffel編寫的例程把一個整數作為參數,這個整數必須是一天中某個小時的有效值,即0到23,包括在內。前提條件在關鍵字require之后。它規定了參數必須大于或等于0,小于或等于23。標簽valid_argument:描述了這個前提條件子句,并在運行時違反前提條件的情況下用于識別它。
前提條件和繼承
編輯在有繼承的情況下,被子類(子類)繼承的例程會在其前提條件生效的情況下進行。這意味著任何繼承例程的實現或重新定義也必須按照其繼承的契約來編寫。前提條件可以在重新定義的例程中被修改,但它們只能被削弱。也就是說,重新定義的例程可以減少客戶的義務,但不能增加。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/164317/