契約式設計的核心是,按照與其他組件簽定的契約,詳細説明每個組件的功能需求。
使用契約式設計,可以用可程式表達式指定對於組件輸入和返回結果的要求。
把防禦*編程技術和麪向方面編程(通過契約式設計)聯繫起來是抵禦所有重複*代碼的一道堅強防線。
例如,一個最近發佈的契約增強工具Contract4J使用apt生成某些方面,以增強契約式設計(dbc)的契約。
所以,嚴格來説,契約式設計看起來可能根本不是AOP 技術的備選方案。
嘗試為應用程序整合進防禦*編程、契約式設計和一種叫做OVal的易用的通用驗*框架。
然而,契約式設計認為契約對於軟件的正確*至關首要,它們該當是設計過程的一項目組。
正如前面提到過的,單元測試和契約式設計用不同的方式實現類似的目標。
契約式設計也做了顯式的合約定義,而在單元測試中這些更隱式。
像Contract4J這樣的契約式設計工具在單元測試比較分散或比較困難的時候最有幫助。
契約式設計是一種發現和修復代碼中邏輯錯誤的工具。
契約式設計(或“契約式編程”)並不是編程領域的新概念,許多語言中已經有類似的實現了。
契約式設計比起單元測試有些優勢,但是這兩種方法是互補的。
實際上,契約式設計倡導起首寫斷言。
契約式設計或防禦*編程。