<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 開閉原則 **【定義】** > 當需要改變一個程序的功能或者給這個程序增加新功 能的時候,可以使用增加代碼的方式,但是不允許改動程序的源代碼 我來強行解釋一下,對擴展開放,對修改封閉 **【優點】** 程序的穩定性提升、容易變化的地方分離出來后更容易維護 **【缺點】** 代碼的完全封閉幾乎不可能,誰也沒有’未卜先知‘的能力,但是我們可以盡可能的去容易變化和不容易變化的地方,挑出容易變化的地方進行封閉 **【應用】** 1. 用對象的多態性消除條件分支(常用) 多態指的是:同一操作在不同的對象上展現出不同的結果 多態最根本的作用就是通過把過程化的條件分支語句轉化為對象的多態性,從而消除這些條件分支語句 我的理解是,只要有類似的行為(map.show instanceof Function)就可以去執行然后呈現出不同的結果,不必每個對象的’類型‘ 代碼對比: ~~~ // bad var googleMap = { show: function(){ console.log( '開始渲染谷歌地圖' ); } }; var baiduMap = { show: function(){ console.log( '開始渲染百度地圖' ); } }; var renderMap = function( type ){ if ( type === 'google' ){ googleMap.show(); }else if ( type === 'baidu' ){ baiduMap.show(); } }; renderMap( 'google' ); // 輸出:開始渲染谷歌地圖 renderMap( 'baidu' ); // 輸出:開始渲染百度地圖 // good var renderMap = function( map ){ if ( map.show instanceof Function ){ map.show(); } }; renderMap( googleMap ); // 輸出:開始渲染谷歌地圖 renderMap( baiduMap ); // 輸出:開始渲染百度地圖 ~~~ 2. 封裝變化 封裝變化就是把可能變化的地方分離出去,這樣只需要維護已經被分離出去的容易變化的地方 方式有:放置掛鉤、回調函數等 ## 總結: 開放-封閉原則其實還是跟我們的程序的維護及擴展性相關的原則,設計原則基本是圍繞程序的可讀、可維護、可擴展、高性能、安全等方面來進行的(正確性有待考究,目前我是這么認為的,有不同意見歡迎評論區留言),設計原則這塊說的都比較相對,就想上一張的最少知識和單一職責原則一樣,實際項目想要的做到這些,只能是一定程度上的,因為有些原則就像一個主觀題,是沒有標準答案的,但是有跡可循
                  <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>

                              哎呀哎呀视频在线观看