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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 適配器模式 將原接口轉換為客戶希望的另一個接口,客戶只需要和適配器打交道 ## 適配器模式的應用 當百度地圖和google地圖提供的接口一致時 ```javascript var googleMap = { show: function(){ console.log('開始渲染地圖'); } }; var baiduMap = { show: function(){ console.log('開始渲染地圖'); } }; var renderMap = function(map){ if(map.show instanceof Function){ map.show(); } }; renderMap(googleMap); renderMap(baiduMap); ``` 這時可以完美的運行著,但是當百度地圖的接口發生改變時 ```javascript var googleMap = { show: function(){ console.log('開始渲染地圖'); } }; var baiduMap = { display: function(){ console.log('開始渲染地圖'); } }; var baiduAdapter = { // 增加 baiduAdapter 來解決問題 show: function(){ return baiduMap.display(); } } var renderMap = function(map){ if(map.show instanceof Function){ map.show(); } }; renderMap(googleMap); renderMap(baiduAdapter); ``` 適配器模式的結構和裝飾者模式、代理模式、外觀模式都比較像,都屬于“包裝模式”,都是由一個對象來包裝另一個對象。 - 適配器模式主要用來解決兩個已有接口之間不太匹配的問題,它不考慮這些接口是怎樣實現的,也不考慮它們將來可能會如何演化。適配器模式不需要改變已有的接口,就能使它們協同作用。 - 裝飾者模式和代理模式不會改變原有對象的接口,但裝飾者模式的作用是為了給對象增加功能。裝飾者模式常常形成一條長的裝飾鏈,而適配模式通常只包裝一次。代理模式是為了控制對象的訪問,通常也只包裝一次。 - 外觀模式的作用倒是和適配器比較相似,有人把外觀模式看成一組對象的適配器,但外觀模式最顯著的特點是定義了一個新的接口。
                  <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>

                              哎呀哎呀视频在线观看