<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #### [使用斷言進行契約式設計](https://lingcoder.gitee.io/onjava8/#/book/16-Validating-Your-Code?id=%e4%bd%bf%e7%94%a8%e6%96%ad%e8%a8%80%e8%bf%9b%e8%a1%8c%e5%a5%91%e7%ba%a6%e5%bc%8f%e8%ae%be%e8%ae%a1) *契約式設計(DbC)\*是 Eiffel 語言的發明者 Bertrand Meyer 提出的一個概念,通過確保對象遵循某些規則來幫助創建健壯的程序。這些規則是由正在解決的問題的性質決定的,這超出了編譯器可以驗證的范圍。雖然斷言沒有直接實現 \**DBC\*\*(Eiffel 語言也是如此),但是它們創建了一種非正式的 DbC 編程風格。DbC 假定服務供應者與該服務的消費者或客戶之間存在明確指定的契約。在面向對象編程中,服務通常由對象提供,對象的邊界 — 供應者和消費者之間的劃分 — 是對象類的接口。當客戶端調用特定的公共方法時,它們希望該調用具有特定的行為:對象狀態改變,以及一個可預測的返回值。 **Meyer**認為: 1.應該明確指定行為,就好像它是一個契約一樣。 2.通過實現某些運行時檢查來保證這種行為,他將這些檢查稱為前置條件、后置條件和不變項。 不管你是否同意,第一條總是對的,在大多數情況下,DbC 確實是一種有用的方法。(我認為,與任何解決方案一樣,它的有用性也有界限。但如果你知道這些界限,你就知道什么時候去嘗試。)尤其是,設計過程中一個有價值的部分是特定類 DbC 約束的表達式;如果無法指定約束,則你可能對要構建的內容了解得不夠。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看