<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 閱讀(1008) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲2019中文字幕| 亚洲视频一区在线| 一级特黄aa毛片免费观看| 久久精品国产亚洲AV无码偷窥| 真人做A免费观看| 色爽黄1000部免费软件下载| 亚洲AV无码国产精品麻豆天美| 四虎精品视频在线永久免费观看| 亚洲AV成人片无码网站| 国产亚洲精AA在线观看SEE| 久久这里只有精品国产免费10| 曰批全过程免费视频观看免费软件 | 永久在线毛片免费观看| 2020亚洲男人天堂精品| 亚洲精品成人片在线观看| 亚洲一级免费毛片| 一级毛片a免费播放王色电影 | 色天使亚洲综合一区二区| 亚洲AV日韩AV永久无码久久| 免费被黄网站在观看| 99精品热线在线观看免费视频| 老司机亚洲精品影院在线观看| 久久精品国产亚洲AV大全| 国产精品亚洲不卡一区二区三区 | 亚洲一级片免费看| 99亚偷拍自图区亚洲| 亚洲AV人无码综合在线观看| 国产大片91精品免费观看男同| 人妻丰满熟妇无码区免费| 一级一级一片免费高清| 亚洲人精品亚洲人成在线| 亚洲av无码不卡一区二区三区| 国产福利免费观看| 一个人看的www在线观看免费| a级精品九九九大片免费看| 国产亚洲精品国看不卡| 亚洲精品一品区二品区三品区| 美女视频黄的全免费视频| 99精品视频在线观看免费| 免费国产va视频永久在线观看| 91在线亚洲综合在线|