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

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

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

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    適配器模式
        將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
        對軟件系統中,如果要復用以前的“現存對象”,但是這些對象所提供的接口并不一定能適應我們的新環境,我們就要將其轉換成我們需要的接口,來供我們調用。 Adapter模式通過定義一個新的接口(對要實現的功能加以抽象),和一個實現該接口的Adapter(適配器)類來透明地調用外部組件。這樣替換外部組件時,最多只要修改幾個Adapter類就可以了,其他源代碼都不會受到影響。

    適配器模式的幾個組成部分:
       1.目標接口,被適應的接口,最終會被適成該接口.
       2.被適應接口,是需要配的接口.
       3.適配器

    酡配器模式(對象適配器)的各個部份的關系

     適配器的分為適器器和對象適配器:

     2種模式嫁接的方式不同。

          類適配器模式采用的是多重繼承的方式

          class Adapter extends Adaptee implements Target{

                request(){this.SpecificRequest();}

                ....

         }

          對象適配器采用的是包含的方式

          class Adapter implements Taget{

               Adaptee adaptee;

               request(){adaptee.SpecificRequest();}

               ...

           }

          兩者的區別我認為有以下幾點

          1.類適配器模式需要創建自身來創建一個Adaptee,

            對象適配器模式可以直接使用一個已有的Adaptee的實例來轉換接口。

          2. 類適配器繼承了Adaptee,所以可以通過覆寫來擴展SpecificRequest()

            對象適配器和Adaptee是包含關系不能擴展;(其實也可以擴展的見下面)

          3.類適配器模式因為是繼承所以相對靜態,而對象適配器模式是包含是組合相對靈活(可以通過寫adaptee子類擴展功能)


    適配器舉例:
    兩相電插座接口:
    package adapter;

    public interface TwoElectricOutLet
    {   
        
    public  void connectTwoElectricCurrent();
    }


    三相電插座接口:
    package adapter;

    /**
     * <ul>
     * <li>Title:[ThreeElectricOutlet]</li>
     * <li>Description: [三相電插座]</li>
     * <li>Copyright 2009 Upengs Co., Ltd.</li>
     * <li>All right reserved.</li>
     * <li>Created by [Huyvanpull] [2011-7-28]</li>
     * <li>Midified by [modifier] [modified time]</li>
     * </ul>
     * 
    @version 1.0  
     
    */

    public interface ThreeElectricOutlet
    {   
        
    /**
         * <ul>
         * <li>Description:[連接三相電]</li>
         * <li>Created by [Huyvanpull] [2011-7-28]</li>
         * <li>Midified by [modifier] [modified time]</li>
         * </ul>
         
    */

        
    public  void connectThreeElectricCurrent();
    }



    對象適配器
    package adapter;

    public class TreeElectricAdapter implements ThreeElectricOutlet
    {
        TwoElectricOutLet twoElectricOutlet;
        
        
    public TreeElectricAdapter(TwoElectricOutLet twoElectricOutlet)
        
    {
            
    this.twoElectricOutlet = twoElectricOutlet;
        }

        
    public void connectThreeElectricCurrent()
        
    {
            System.out.print(
    "變壓器");
            
    this.twoElectricOutlet.connectTwoElectricCurrent();
        }
       

    }



    雙向適配器:
        適配器同時能適配目標接口和被適配接口

    適配器模式的優點:
       1.適配都和被適配者是一種松耦合的關系.
       2.符合開閉原則
    posted on 2011-07-28 03:34 HUIKK 閱讀(349) 評論(0)  編輯  收藏 所屬分類: Design Patterns
    主站蜘蛛池模板: 在线91精品亚洲网站精品成人| 亚洲精品自在线拍| 老司机午夜免费视频| 成年性午夜免费视频网站不卡| 亚洲精品熟女国产| 1000部拍拍拍18勿入免费视频下载 | 国产亚洲精品久久久久秋霞 | 五月亭亭免费高清在线| 亚洲成人激情在线| 日本免费污片中国特一级| 亚洲AV无码国产在丝袜线观看| 女同免费毛片在线播放| 亚洲国产精品一区二区第一页| 三级毛片在线免费观看| 亚洲av之男人的天堂网站| 久久香蕉国产线看免费| 亚洲三级电影网址| 日本三级2019在线观看免费| 亚洲人妖女同在线播放| 最近中文字幕无吗高清免费视频| 精品日韩99亚洲的在线发布| 成人毛片免费观看视频在线| 爱情岛论坛亚洲品质自拍视频网站 | 亚洲AV香蕉一区区二区三区| 看全色黄大色大片免费久久| 猫咪免费人成网站在线观看入口 | 久久国产乱子伦精品免费强| 亚洲今日精彩视频| 毛片免费在线观看网址| 免费观看又污又黄在线观看| 国产AV无码专区亚洲AWWW | 人成电影网在线观看免费| 亚洲精品乱码久久久久66| 亚洲一区在线免费观看| 国产午夜亚洲精品国产| 亚洲国产中文v高清在线观看| xvideos永久免费入口| 亚洲一区影音先锋色资源| 免费观看a级毛片| 光棍天堂免费手机观看在线观看| 亚洲影视一区二区|