<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://box.kancloud.cn/2016-02-18_56c5ce7187a8c.png) 同時,還可以按照手機軟件來給軟件分類。 ![](https://box.kancloud.cn/2016-02-18_56c5ce719a192.png) 現在我們要是想增加三個手機品牌應該怎么辦? 用第一幅圖來說,我們需要在第二層增加三個類,再在第三層增加留個類;如果是第二種分法,需要再第三層加六個類。 或者說要增加三個軟件,又該怎么辦? 這時候的情況原理同上。 那我要是既增加手機軟件,又增加手機品牌呢???? 這樣,兩種分法,做出調整都是一個巨大的工程,關鍵是我們這樣修改還違背了軟件模式設計原則:開發封閉原則。 不管我們是增加手機,還是手機軟件,都會影響到彼此,所以為了解決這種情況,我們采用了一種設計模式——橋接模式。 在說橋接模式前,先說一個原則:合成/聚合復用原則。 **合成/**聚合復用原則**:盡量使用合成/聚合,不要使用繼承。優先使用對象的合成/聚合將有助于你保持每個類被封裝,并被集中在單個任務上,這樣類和類繼承層次會保持較小規模,并且不太可能增長為不可控制的龐然大物。 遇到類似這種多種分類方式的情況下,我們不要一味的依賴繼承,這樣會繼承越多,我們就把多種分類方式分別寫出來,然后根據“合成/聚合復用”的原則對父類進行連接。這樣,在修改各自類的時候不會干擾的彼此,各自的類都有了良好的封裝和擴展。 **結構圖如下:** ![](https://box.kancloud.cn/2016-02-18_56c5ce71aa725.png) ## 二、類圖如下: ![](https://box.kancloud.cn/2016-02-18_56c5ce71bbd80.png) 注意:類圖中的Abstraction是一個抽象的抽象類,Implementor是具體的實現類。橋接模式運用合成/聚合復用的原則把抽象和實現分開來表示,而不是使用繼承,把層次累積成龐然大物。
                  <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>

                              哎呀哎呀视频在线观看