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

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

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

    隨筆-126  評論-247  文章-5  trackbacks-0

    適配器模式Adapter 模式),將一個類的接口轉換成客戶希望的另外一個接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

    1. 類的適配器模式結構圖:

    從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個中間環節,

    即 Adapter 類(適配器類),把 Adaptee 的 API 與 Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是繼承關系,這就決定了這個適配器的模式是類。

    示意圖的實現源碼:


    package pattern.adapter;
    /**
     * -----------------------------------------
     * @描述  源類(需要適配的類)
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-5 <p>
     * -----------------------------------------
     
    */

    public class Adaptee {

        
    public void operation1(){
            
            
    //do other things here
        }

    }




    package pattern.adapter;
    /**
     * -----------------------------------------
     * @描述  目標接口
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-5 <p>
     * -----------------------------------------
     
    */

    public interface Target {

        
    public void operation1();
        
        
    public void operation2();
        
    }




    package pattern.adapter;
    /**
     * -----------------------------------------
     * @描述  適配器
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-5 <p>
     * -----------------------------------------
     
    */

    public class Adapter extends Adaptee implements Target{

        
    public void operation2(){
            
            
    //do other things here
        }

    }




    2. 對象的適配器模式結構圖:

    從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個包裝類,

    即 Adapter 類(適配器類),它包裝了一個 Adaptee 類的實例,從而此包裝類能夠把 Adaptee 的 API 與 Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是委派關系,

    這就決定了這個適配器的模式是對象。

    示意圖中的 Target 和 Adaptee 源代碼不變,下面來看一下 Adapter 類的源碼:


    package pattern.adapter;
    /**
     * -----------------------------------------
     * @描述  適配器
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-5 <p>
     * -----------------------------------------
     
    */

    public class Adapter implements Target{

        
    private Adaptee adaptee;
        
        
    public Adapter(Adaptee adaptee){
            
    this.adaptee = adaptee;
        }

        
        @Override
        
    public void operation1() {
            
            adaptee.operation1();
        }


        @Override
        
    public void operation2() {
            
            
    //do other things here
        }


    }



      
    posted on 2012-08-05 16:50 fancydeepin 閱讀(1122) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲欧洲国产综合| 免费a级毛片在线观看| 久久香蕉国产线看观看亚洲片| 免费看黄网站在线看| 亚洲色偷偷综合亚洲AV伊人| 黄网站色视频免费看无下截| 免费v片在线观看无遮挡| 免费看内射乌克兰女| 中文字幕亚洲乱码熟女一区二区| 本免费AV无码专区一区| 亚洲国产成人精品无码区在线观看 | 亚洲不卡视频在线观看| 99爱在线精品免费观看| 亚洲精品一卡2卡3卡四卡乱码| 免费看又爽又黄禁片视频1000| 美女羞羞免费视频网站| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲成人免费在线| 亚洲最大福利视频| 亚洲国产精品一区二区九九| 国产免费网站看v片在线| 亚洲成人黄色在线| 国产亚洲福利一区二区免费看| 一级一片免费视频播放| 国产v亚洲v天堂无码网站| 4455永久在线观免费看| 精品韩国亚洲av无码不卡区| 国产亚洲色视频在线| 91精品导航在线网址免费| 亚洲另类自拍丝袜第五页| 亚洲综合激情另类专区| 91短视频在线免费观看| 亚洲av无码成人精品国产| 亚洲日韩aⅴ在线视频| 91成年人免费视频| 免费无码午夜福利片69| 亚洲精品视频免费看| 哒哒哒免费视频观看在线www| 99久久精品毛片免费播放| 国产v亚洲v天堂a无| 亚洲日本va在线视频观看|