適配器Adapter

          1.意圖:
          ????????????將一個類的接口轉換成客戶希望的另一個接口。Adapter模式使得原來由于版本不兼容而不能在一起的夠哦那個做的那些類可以在一起工作。有時,為復用而設計的工具箱類不能夠被復用的原因僅僅是因為它的接口與專業應用領域所需要的接口不匹配。
          2.適配器模式有類的適配器模式和對象的適配器模式兩種不同的形式。

          一、類的適配器模式
          ??? 類的適配器模式把適配的類的API轉換成目標類的API。

          • 目標(Target)角色:這就是所期待得到的接口。
          • 源(Adaptee)角色:現有需要適配的接口。
          • 適配器(Adapter)角色:適配器類是本模式的核心。適配器把源接口轉換成目標接口。顯然這一角色不可以是接口,而必須是具體類。

          /**
          ?* 定義Client使用的與特定領域相關的接口
          ?*/
          public interface Target {
          ??? void sampleOperation1();
          ??? void sampleOperation2();
          }
          /**
          ?* 定義一個已經存在的接口,這個接口需要適配
          ?*/
          public class Adaptee {
          ??? public void sampleOperation1() {
          ??? ??? // ......
          ??? }
          }
          /**
          ?* 對Adaptee與Target接口進行適配
          ?*/
          public class Adapter extends Adaptee implements Target {
          ??? public void sampleOperation2() {
          ??? ??? // ......
          ??? }
          }

          二、對象適配器
          ??? 與類的適配器模式一樣,對象適配器模式把適配的類的API轉換成為目標類的API,與類的適配器模式不同的是,對象的適配器模式不是使用繼承關系連接到Adaptee類,而是使用委派關系連接到Adaptee類。示意代碼如下:
          /**
          ?* 定義Client使用的與特定領域相關的接口
          ?*/
          public interface Target {
          ??? void sampleOperation1();
          ??? void sampleOperation2();
          }
          /**
          ?* 定義一個已經存在的接口,這個接口需要適配
          ?*/
          public class Adaptee {
          ??? public void sampleOperation1() {
          ??? ??? // ......
          ??? }
          }
          /**
          ?* 對Adaptee與Target接口進行適配
          ?*/
          public class Adapter implements Target {
          ??? private Adaptee adaptee;
          ??? public Adapter(Adaptee adaptee) {
          ??? ??? super();
          ??? ??? this.adaptee = adaptee;
          ??? }
          ??? public void sampleOperation1() {
          ??? ??? adaptee.sampleOperation1(); // 看點
          ??? }
          ??? public void sampleOperation2() {
          ??? ??? // ......
          ??? }
          }

          類適配器模式和對象適配器模式的異同:Target接口和Adaptee類都相同,不同的是類適配器的Adapter繼承Adaptee實現Target,對象適配器的Adapter實現Target聚集Adaptee。

          適配器模式的用意是將接口不同而功能相同或者相近的兩個接口加以轉換。

          posted on 2010-01-17 17:54 飛熊 閱讀(278) 評論(0)  編輯  收藏 所屬分類: java設計模式

          <2010年1月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 曲阜市| 天气| 嘉兴市| 类乌齐县| 天全县| 赫章县| 图木舒克市| 绿春县| 滦南县| 延寿县| 远安县| 石棉县| 师宗县| 义马市| 巴中市| 平度市| 东宁县| 房山区| 通州市| 禄劝| 洱源县| 抚州市| 永吉县| 曲麻莱县| 璧山县| 临清市| 体育| 渝北区| 德化县| 盈江县| 土默特左旗| 策勒县| 鄂托克前旗| 高台县| 古田县| 北流市| 玉林市| 宁明县| 德昌县| 新田县| 濮阳市|