<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 天天操夜夜操免费视频| 一个人在线观看视频免费| 国产成人3p视频免费观看 | 亚洲乱码一区av春药高潮| 免费观看在线禁片| 亚洲精品午夜国产VA久久成人| 亚洲黄片手机免费观看| 亚洲片一区二区三区| 国产精品黄页免费高清在线观看| 国产亚洲精品无码专区| a视频在线观看免费| 亚洲AV成人精品网站在线播放| 国内精品久久久久影院免费| 久久亚洲一区二区| 久久WWW免费人成一看片| 亚洲av永久无码精品天堂久久| 最近免费中文字幕视频高清在线看| 国产午夜亚洲精品国产| 女人18毛片特级一级免费视频| 久久精品熟女亚洲av麻豆| 少妇亚洲免费精品| 黄色片免费在线观看| 亚洲专区先锋影音| 日韩精品成人无码专区免费| 亚洲国产精品无码久久| 亚洲精品无码专区2| 美女视频黄a视频全免费网站色窝| 91亚洲国产在人线播放午夜| 成人性生交大片免费看无遮挡| 黄色免费在线观看网址| 亚洲av无码国产精品夜色午夜| 日本高清在线免费| 黄色a三级免费看| 久久亚洲精品国产精品| 最近中文字幕无吗免费高清| 特级毛片免费播放| 亚洲色图校园春色| 亚洲精品无码久久久| 91嫩草免费国产永久入口| 国产成人精品亚洲| 中文字幕亚洲免费无线观看日本 |