設計模式之—適配器模式

來源:互聯網
上載者:User

 一、模式定義

        將一個類的介面轉換成客戶希望的另外一個介面。Adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

二、所體現出的設計原則

        我覺得這裡體現了2種設計原則:首先是迪米特法則“不合陌生人說話”,類之間的關係盡量少;然後是部分體現了“開閉法則”,增加適配器使得原有系統的介面不必要更改。

三、UML圖示

                                

       ,一般來說適配器類和被適配對象之間是彙總的關係,也就是對象適配器。很少對類適配器,因為考慮到“組合優於繼承”。

四、應用情境

       在新,老系統的相容中,特別容易用到適配器模式,因為老系統的介面往往和新系統的介面不一樣。或者用一個新的,相同功能的模組替代舊模組時,也容易遇到這種情況。

五、注意事項

       適配器和裝飾者模式之間的區別是:適配器一定會轉換介面,但一般不增加新的功能;而裝飾者一般都要增加新的屬性,介面,功能。

        適配器和代理模式之間的區別是:適配器模式中一定會轉換介面;但代理模式是不改變介面,但對其功能進行控制。


六、舉例說明

       舉個例子,為了實現xml的解析,舊系統中採用了第三方庫A解析XML;現在由於新的功能需求,需要用功能更加強大的第三方庫B替換庫A,但2種庫的介面是不一樣的。此時就需要增加適配器類,來適配庫B的介面。

七、程式碼範例

        沒找到現成的,不過也很簡單。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.