<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
    將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

    ? ? 有時(shí),為復(fù)用而設(shè)計(jì)的工具箱類不能夠被復(fù)用的原因僅僅是因?yàn)樗慕涌谂c專業(yè)應(yīng)用領(lǐng)域所需要的接口不匹配。
    ??? 適配器模式有類的適配器模式和對象的適配器模式兩種不同的形式。

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


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

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

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

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

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

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲电影一区二区| 国产AⅤ无码专区亚洲AV| 久久精品国产亚洲AV电影| 久久久精品视频免费观看| 2048亚洲精品国产| 国产美女视频免费观看的网站| 亚洲人成网站观看在线播放| 一区二区三区在线免费| 亚洲伊人成无码综合网 | 国产国拍亚洲精品福利| 男女啪啪免费体验区| www国产亚洲精品久久久| 少妇亚洲免费精品| 国产亚洲精品成人AA片新蒲金| 两个人看的www免费高清| 亚洲国产女人aaa毛片在线| 亚洲网站在线免费观看| 亚洲欧洲免费无码| 亚洲第一黄色网址| a级毛片视频免费观看| 337p日本欧洲亚洲大胆艺术| 91精品免费在线观看| 亚洲国产AV无码一区二区三区| 亚洲成人国产精品| 久久精品私人影院免费看| 亚洲人成综合在线播放| 国产精品久久香蕉免费播放| 国产一级黄片儿免费看| 亚洲国产精品一区二区久| 国产自产拍精品视频免费看| 91在线视频免费观看| 亚洲一区二区久久| 亚洲成AⅤ人影院在线观看| 免费A级毛片无码A∨中文字幕下载| 久久精品国产亚洲AV忘忧草18| 五月婷婷亚洲综合| 亚洲a一级免费视频| 亚洲国产精品无码中文lv| 亚洲日韩精品A∨片无码| 免费电视剧在线观看| 中文无码日韩欧免费视频|