<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國際加速解決方案。 廣告
                對于一個復數對象,有些條件我們期望是真的。 舉例來說,如果笛卡爾坐標系的標志量被設置了,那么我們就期望real和imag的值是有效的,類似地,如果極坐標系的標志量被設置了,我們期望mag和theta也是有效的。最后,如果兩個標志位都設置了的話,我們希望四個值是一致的,即他們應該是以不同的表示方式表示相同的一個復數。 這樣的條件即為不變式,由于很顯而易見的原因他們是不變的——他們總是應該為真。編寫幾乎沒有bug的高質量代碼就是要指出你的類中那些是不變式,并讓改變他們成為不可能。 數據封裝的好處之一就是幫助保證不變式。第一部是通過將變量變為私有從而阻止不受約束的訪問。然后更改對象的唯一辦法就是通過訪問函數和更改器了。如果我們檢查所所有的訪問函數和更改器并發現他們都能保證不變式不變,那么我們就可以證明一個不變式是不會被篡改的了。 在Complex 類中,我們列出對變量進行賦值的函數: 第二個構造函數 calculateCartesian calculatePolar setCartesian setPolar 在每一個函數中,很明顯他們能保持上面提到的不變性。這里我們需要小心一些。注意到我說的是“保持”不變性。這就意味著,如果這個不變式為真,那么當這個函數被調用后仍然為真。 這樣的定義允許了兩處漏洞。首先在函數執行過程中可能有不變式為假的情況,這是沒關系的,有些時候是不可避免的。只要不變式在函數執行之后恢復即可。 另外一處漏洞是如果在函數執行開始時不變式為真我們只需保持該不變性即可。如果開始執行時部位真,所有都是徒勞了。如果不變式在某處被更改了,我們能做的一般來說就是檢測到出錯,打印錯誤信息,然后退出。
                  <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>

                              哎呀哎呀视频在线观看