Adapter模式

          Posted on 2007-11-20 17:04 game of programming 閱讀(825) 評論(0)  編輯  收藏 所屬分類: Design Pattern

          《設計模式》一書中對Adapter模式的解釋為:將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使原本由于接口不兼容而不能一起工作的類可以一起工作。

          Adapter模式的UML圖如下所示:


          如圖所示,Client希望通過一個統一的方式來調用Adaptee所提供的接口,但是Adaptee所提供的接口和Client所規定的接口規則并不一致,所以可以通過Adapter來進行適配。
          Adapter模式也是經常被用到的模式,它經常用來保持多態性。比如做一個畫圖程序Client,要求能夠畫出Circle、Rectangle和Hentagon,并且定義統一的接口display()和erase()。現在已經有一個能夠畫出Hentagon的類XXXHentagon,但是XXXHentagon提供的接口與Client所要求的接口規則不一致。為了能夠重用XXXHentagon已經實現的功能,可以使用Adapter模式來將XXXHentagon適配成符合Client接口規則的Hentagon類。如下圖所示:


          如上圖所示,采用Adapter模式具有以下好處(相比與不使用任何模式):
          1 Client不用需要考慮如何去display/erase圖形,它只需要將相關參數交給Shape即可;
          2 Pentagon(Adapter)保持了類層次的多態性;
          3 XXXPentagon得到了重用,而不是完全丟棄去重寫。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 2, comments - 1, trackbacks - 0, articles - 5

          Copyright © game of programming

          主站蜘蛛池模板: 襄汾县| 竹溪县| 壤塘县| 两当县| 武汉市| 蒙自县| 东山县| 焦作市| 江永县| 蒲城县| 资中县| 丹凤县| 武安市| 新巴尔虎左旗| 泸西县| 儋州市| 龙口市| 霍林郭勒市| 岱山县| 准格尔旗| 图木舒克市| 舟曲县| 天台县| 临泽县| 渭源县| 海阳市| 吉木萨尔县| 涪陵区| 花莲县| 旌德县| 噶尔县| 霍邱县| 金沙县| 河津市| 盐源县| 容城县| 满洲里市| 长泰县| 芜湖县| 晋江市| 泉州市|