今天繼續(xù)修煉,契約是一個(gè)很有用的東西,它是規(guī)定了權(quán)利和義務(wù),其實(shí)程序員修煉營就是一個(gè)契約,比如我們要怎么修煉,修煉了會(huì)有什么好處,不修煉會(huì)有什么后果等等。
一個(gè)契約有三個(gè)核心要素,第一個(gè)要素是前置條件,第二個(gè)要素是后置條件,第三個(gè)要素是不變性。
契約就像是一個(gè)段程序或者方法,它包含輸入、處理和輸出三個(gè)部分,為了使這個(gè)程序正常運(yùn)轉(zhuǎn),得到我們預(yù)期的結(jié)果,我們就要首先保證輸入滿足前置條件。
在輸入滿足前置條件的情況下,輸出要滿足預(yù)期,同時(shí)程序的處理要保證不改變輸入中不能被改變的部分,如果程序失敗時(shí),不應(yīng)該對(duì)輸入時(shí)的狀態(tài)產(chǎn)生影響。