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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲韩国精品无码一区二区三区| 亚洲精品乱码久久久久蜜桃| 在线观看亚洲AV每日更新无码| 一级毛片高清免费播放| 最近免费最新高清中文字幕韩国| 亚洲免费日韩无码系列 | 亚洲国产精品成人精品无码区| 亚洲精品欧美综合四区| 免费看黄的成人APP| 成年女人毛片免费播放视频m| 亚洲国产天堂久久久久久| 亚洲第一页在线视频| 精品免费久久久久国产一区| 青娱分类视频精品免费2| 国产亚洲av片在线观看16女人| 亚洲乱色熟女一区二区三区蜜臀| 中文字幕乱理片免费完整的| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 国产午夜成人免费看片无遮挡| A级毛片内射免费视频| 久久精品国产精品亚洲蜜月| 国产精品偷伦视频免费观看了| 成人AV免费网址在线观看| 亚洲国产av一区二区三区丶| 7m凹凸精品分类大全免费| 久久久久亚洲精品天堂| 亚洲视频在线免费观看| 香蕉蕉亚亚洲aav综合| 久久精品人成免费| 亚洲系列中文字幕| 91久久成人免费| 亚洲av永久无码精品天堂久久| 黄页网站免费在线观看| 色婷五月综激情亚洲综合| 美女视频黄a视频全免费| 亚洲w码欧洲s码免费| 成年在线观看网站免费| 久久精品国产亚洲AV| 亚洲AV无码成人精品区大在线| 黄色免费网址在线观看| 国产成人精品久久亚洲|