<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精品亚洲网站精品成人| 一二三四在线观看免费高清中文在线观看| 亚洲国产一区国产亚洲| 午夜免费啪视频在线观看| 亚洲日本一区二区| 69成人免费视频| 亚洲色少妇熟女11p| 国产精品国产午夜免费福利看| 亚洲午夜精品一区二区麻豆| 成人au免费视频影院| 亚洲a无码综合a国产av中文| 亚洲а∨天堂久久精品| 国产精品免费久久久久电影网| 亚洲大尺度无码无码专区| 91av免费观看| 亚洲字幕AV一区二区三区四区| 国产成人精品免费直播| 久久久受www免费人成| 亚洲第一福利网站| 国内精品乱码卡1卡2卡3免费| 亚洲欧美日韩综合俺去了| 又粗又硬免费毛片| 国产成人AV片无码免费| 亚洲国产精品成人综合色在线婷婷| 久久精品女人天堂AV免费观看| 精品国产亚洲一区二区三区在线观看 | 一级特黄aa毛片免费观看| 91嫩草亚洲精品| 国产男女猛烈无遮挡免费视频| 丰满人妻一区二区三区免费视频 | 亚洲AV无码无限在线观看不卡| 国产一级大片免费看| 欧洲人免费视频网站在线| 国产成人亚洲综合一区| 亚洲日韩在线观看免费视频| 最近中文字幕mv免费高清视频8| 亚洲国产成人AV在线播放| 亚洲成AV人片一区二区| 成人毛片免费视频|