<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模式的目的:把一個類的接口轉換成客戶端需要的接口。
    適用場合:
       當你想使用一個現有類的功能,但是它的接口不能滿足你的需要
       當你想創建一個循環使用的類,用于使一些沒有相互聯系的類,或者是未知的將來會引進的類之間協調合作完成某些功能。也就是說,這些類不必要具備一致的接口
       當你要使用數個現有的的子類,但是要對每一個子類進行接口的改寫變得很不切實際。
     
    具體的例子
       變壓器(Adapter),變壓器把一種電壓變換成另一種電壓。美國的生活用電電壓是110V,而中國的電壓是220V。如果要在中國使用美國電器,就必須有一個能把220V電壓轉換成110V電壓的變壓器。這個變壓器就是一個Adapter。
     
    客戶買回了美國的電器Machine,工作電壓110V,電器插頭為3相(陰、陽、地級),所以需要一個電壓和相級的轉換器或者說是適配器來使這個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 變壓器_相位轉換器 extends 中國_供電 implements 電器需要使用 
    {

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


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

        
    }


    public class ClassAdapter {

        
    public static void main(String[] args) {
            變壓器_相位轉換器 device 
    = new 變壓器_相位轉換器();
            
            device.電壓_110V();
            device.兩相插口();
            
            System.out.println(
    "經過變壓器_相位轉換器的包裝(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 變壓器_相位轉換器_a implements 電器需要使用_a 
    {
        中國_供電_a supply 
    = new 中國_供電_a();

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


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

        
    }


    public class ObjectAdapter {

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

        }


    }


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

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


    網站導航:
     
    主站蜘蛛池模板: 成人在线免费观看| 国产V亚洲V天堂无码| 在线观看国产区亚洲一区成人| 亚洲jizzjizz少妇| 精品久久久久久久免费加勒比| 亚洲第一区二区快射影院| 成人片黄网站色大片免费| 亚洲一区二区三区高清在线观看 | 亚洲中文字幕无码爆乳app| 日韩视频在线精品视频免费观看| 五月天婷亚洲天综合网精品偷| 美女被免费网站在线视频免费| 亚洲av日韩片在线观看| 国产大片免费天天看| 亚洲av无码av制服另类专区| 最近免费视频中文字幕大全| 亚洲日本一区二区三区在线不卡| 岛国精品一区免费视频在线观看 | 亚洲日韩乱码中文无码蜜桃| 一个人免费观看www视频在线| 亚洲精品无码久久久久APP | 免费日本一区二区| 亚洲免费人成视频观看| 成人国产mv免费视频| 国产午夜不卡AV免费| 亚洲一区二区三区久久| 国产精品免费看香蕉| 三年片在线观看免费| 亚洲天堂2016| 日本免费一区二区三区四区五六区| 亚洲福利中文字幕在线网址| 中文字幕一区二区免费| 亚洲av片一区二区三区| 无码国产精品一区二区免费16| 亚洲娇小性xxxx色| 亚洲人午夜射精精品日韩| h视频在线观看免费完整版| 亚洲国产一区二区三区青草影视| 性做久久久久久免费观看| jizz日本免费| 亚洲中文字幕无码中文字|