<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 73,  comments - 55,  trackbacks - 0
    將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

    ? ? 有時,為復用而設(shè)計的工具箱類不能夠被復用的原因僅僅是因為它的接口與專業(yè)應(yīng)用領(lǐng)域所需要的接口不匹配。
    ??? 適配器模式有類的適配器模式和對象的適配器模式兩種不同的形式。

    一、類的適配器模式
    ??? 類的適配器模式把適配的類的API轉(zhuǎn)換成目標類的API。


    • 目標(Target)角色:這就是所期待得到的接口。
    • 源(Adaptee)角色:現(xiàn)有需要適配的接口。
    • 適配器(Adapter)角色:適配器類是本模式的核心。適配器把源接口轉(zhuǎn)換成目標接口。顯然這一角色不可以是接口,而必須是具體類。
    /**
    ?* 定義Client使用的與特定領(lǐng)域相關(guān)的接口
    ?*/
    public interface Target {
    ??? void sampleOperation1();
    ??? void sampleOperation2();
    }
    /**
    ?* 定義一個已經(jīng)存在的接口,這個接口需要適配
    ?*/
    public class Adaptee {
    ??? public void sampleOperation1() {
    ??? ??? // ......
    ??? }
    }
    /**
    ?* 對Adaptee與Target接口進行適配
    ?*/
    public class Adapter extends Adaptee implements Target {
    ??? public void sampleOperation2() {
    ??? ??? // ......
    ??? }
    }

    二、對象適配器
    ??? 與類的適配器模式一樣,對象適配器模式把適配的類的API轉(zhuǎn)換成為目標類的API,與類的適配器模式不同的是,對象的適配器模式不是使用繼承關(guān)系連接到Adaptee類,而是使用委派關(guān)系連接到Adaptee類。示意代碼如下:
    /**
    ?* 定義Client使用的與特定領(lǐng)域相關(guān)的接口
    ?*/
    public interface Target {
    ??? void sampleOperation1();
    ??? void sampleOperation2();
    }
    /**
    ?* 定義一個已經(jīng)存在的接口,這個接口需要適配
    ?*/
    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實現(xiàn)Target,對象適配器的Adapter實現(xiàn)Target聚集Adaptee。

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

    三、JDBC驅(qū)動軟件與適配器模式
    ??? JDBC給出一個客戶端通用的界面,每個數(shù)據(jù)庫引擎的JDBC驅(qū)動軟件都是一個介于JDBC接口和數(shù)據(jù)庫引擎接口之間的適配器軟件。
    posted on 2006-07-11 08:52 保爾任 閱讀(921) 評論(0)  編輯  收藏 所屬分類: Design Patten

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 黄页网站免费在线观看| 亚洲激情在线视频| 亚洲日本一区二区三区| 亚洲欧洲国产综合AV无码久久| 无码少妇精品一区二区免费动态 | 亚洲精品无码AV中文字幕电影网站 | 精品一区二区三区免费观看| 成年女人午夜毛片免费视频 | 亚洲欧洲国产视频| 午夜精品免费在线观看| 亚洲乱码中文字幕久久孕妇黑人| 亚洲AV无码精品国产成人| 男人的好看免费观看在线视频| 久久综合日韩亚洲精品色| 国产精品亚洲а∨天堂2021| 成人午夜大片免费7777| 亚洲真人无码永久在线观看| 亚洲精品免费视频| 久久精品国产亚洲av麻豆色欲| 久久久久免费视频| 日韩免费毛片视频| 亚洲爆乳少妇无码激情| 亚洲中文字幕无码久久2017| 免费人成视频在线播放| 精品国产_亚洲人成在线高清| 最近中文字幕2019高清免费| 亚洲精品色播一区二区| 亚洲 另类 无码 在线| 中文字幕无码日韩专区免费| 亚洲1234区乱码| 亚洲视频一区二区| 91免费国产精品| 国产精品亚洲小说专区| 亚洲AV无码专区国产乱码电影| 一二三四免费观看在线电影| 特级毛片免费播放| 亚洲男人电影天堂| 亚洲AV中文无码乱人伦| 曰批全过程免费视频播放网站 | 国产亚洲自拍一区| 国产成人免费爽爽爽视频 |