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

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

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

    隨筆-46  評論-64  文章-2  trackbacks-0
    Adapter模式
    使用Adapter模式的目的:把一個類的接口轉(zhuǎn)換成客戶端需要的接口。
    適用場合:
       當(dāng)你想使用一個現(xiàn)有類的功能,但是它的接口不能滿足你的需要
       當(dāng)你想創(chuàng)建一個循環(huán)使用的類,用于使一些沒有相互聯(lián)系的類,或者是未知的將來會引進的類之間協(xié)調(diào)合作完成某些功能。也就是說,這些類不必要具備一致的接口
       當(dāng)你要使用數(shù)個現(xiàn)有的的子類,但是要對每一個子類進行接口的改寫變得很不切實際。
     
    具體的例子
       變壓器(Adapter),變壓器把一種電壓變換成另一種電壓。美國的生活用電電壓是110V,而中國的電壓是220V。如果要在中國使用美國電器,就必須有一個能把220V電壓轉(zhuǎn)換成110V電壓的變壓器。這個變壓器就是一個Adapter。
     
    客戶買回了美國的電器Machine,工作電壓110V,電器插頭為3相(陰、陽、地級),所以需要一個電壓和相級的轉(zhuǎn)換器或者說是適配器來使這個Machine能在中國使用。
    一、類的Adapter模式
    package Adapter;

    interface 電器需要使用
    {
        
    public void 兩相插口();
        
    public void 電壓_110V();
    }


    class 中國_供電
    {
        
    protected int v;
        
    public 中國_供電()
        
    {
            v
    =220;
            System.out.println(
    "中國供電提供的電壓是:" +v+"V");
        }

        
    //返回中國電壓的值
        public int voltage()
        
    {
            
    return v;
        }

    }

    class 變壓器_相位轉(zhuǎn)換器 extends 中國_供電 implements 電器需要使用 
    {

        
    public void 兩相插口() {
            System.out.println(
    "變壓器_相位轉(zhuǎn)換器——提供三相到兩相轉(zhuǎn)換操作,返回兩相插口");
            
        }


        
    public void 電壓_110V() {
            v 
    = this.voltage()/2;
            System.out.println(
    "變壓器_相位轉(zhuǎn)換器——轉(zhuǎn)換后提供電壓為:"+v+"V");
        }

        
    }


    public class ClassAdapter {

        
    public static void main(String[] args) {
            變壓器_相位轉(zhuǎn)換器 device 
    = new 變壓器_相位轉(zhuǎn)換器();
            
            device.電壓_110V();
            device.兩相插口();
            
            System.out.println(
    "經(jīng)過變壓器_相位轉(zhuǎn)換器的包裝(Warpper),在美國買來的電器能夠使用啦!^0^");

        }


    }


    二、對象的Adapter模式
    package Adapter;

    interface 電器需要使用_a
    {
        
    public void 兩相插口();
        
    public void 電壓_110V();
    }


    class 中國_供電_a
    {
        
    protected int v;
        
    public 中國_供電_a()
        
    {
            v
    =220;
            System.out.println(
    "中國供電提供的電壓是:" +v+"V");
        }

        
    //返回中國電壓的值
        public int voltage()
        
    {
            
    return v;
        }

    }

    class 變壓器_相位轉(zhuǎn)換器_a implements 電器需要使用_a 
    {
        中國_供電_a supply 
    = new 中國_供電_a();

        
    public void 兩相插口() {
            System.out.println(
    "變壓器_相位轉(zhuǎn)換器——提供三相到兩相轉(zhuǎn)換操作,返回兩相插口");
            
        }


        
    public void 電壓_110V() {
            supply.v 
    = supply.voltage()/2;
            System.out.println(
    "變壓器_相位轉(zhuǎn)換器——轉(zhuǎn)換后提供電壓為:"+supply.v+"V");
        }

        
    }


    public class ObjectAdapter {

        
        
    public static void main(String[] args) {
            變壓器_相位轉(zhuǎn)換器_a device 
    = new 變壓器_相位轉(zhuǎn)換器_a();
            
            device.電壓_110V();
            device.兩相插口();
            
            System.out.println(
    "經(jīng)過變壓器_相位轉(zhuǎn)換器的包裝(Warpper),在美國買來的電器能夠使用啦!^0^");

        }


    }


    posted on 2006-02-24 21:13 jht 閱讀(1012) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产人成亚洲第一网站在线播放| 91免费在线播放| 亚洲日韩精品无码AV海量| 国产成人精品亚洲精品| 2019中文字幕免费电影在线播放| xxxxx做受大片视频免费| 亚洲国产成人AV在线播放| 亚洲欧洲日本精品| 亚洲国产成人一区二区精品区| 亚洲av午夜精品一区二区三区| 亚洲精品亚洲人成在线观看下载| 97视频免费在线| 久久久免费的精品| 午夜在线免费视频| 亚洲精品无码久久| 天天爽亚洲中文字幕| 亚洲码在线中文在线观看| 亚洲AV无码乱码国产麻豆穿越 | 亚洲一区二区三区四区在线观看 | 97无码人妻福利免费公开在线视频| 羞羞视频在线免费观看| 亚洲欧洲无卡二区视頻| 亚洲视频一区二区三区四区| 自怕偷自怕亚洲精品| 久久久久久亚洲精品成人| 久久久久久a亚洲欧洲AV| 亚洲s色大片在线观看| 亚洲av之男人的天堂网站| 亚洲一区二区女搞男| 亚洲一区AV无码少妇电影☆| 国产成人亚洲精品狼色在线| 爱情岛论坛网亚洲品质自拍| 国产黄色一级毛片亚洲黄片大全| 亚洲裸男gv网站| 亚洲中文字幕无码中文字在线| 亚洲综合在线另类色区奇米| 亚洲精品国产美女久久久| 亚洲国产精品高清久久久| 久久久久亚洲Av片无码v| 久久精品国产亚洲77777| 亚洲人成网站在线观看播放青青|