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

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


    網站導航:
     
    主站蜘蛛池模板: 91免费在线视频| 羞羞漫画小舞被黄漫免费| 在线观看免费黄色网址| 亚洲日韩人妻第一页| 男女男精品网站免费观看| 亚洲国产精品综合久久网络| 免费视频成人国产精品网站| 国产成人综合久久精品免费 | 亚洲AV日韩AV鸥美在线观看| 男人天堂免费视频| 久久亚洲AV成人无码软件| 日本最新免费网站| 亚洲精品国产第一综合99久久| 女人18一级毛片免费观看| 亚洲AV成人无码网站| 亚洲美女在线国产| 99久久国产精品免费一区二区| 久久久久亚洲AV无码专区首| 67pao强力打造国产免费| 一本色道久久综合亚洲精品蜜桃冫| 免费无码看av的网站| 日本一区二区三区在线视频观看免费 | 老司机精品免费视频| 亚洲av无码一区二区三区乱子伦 | 精品久久亚洲中文无码| 色www永久免费视频| 一个人免费播放在线视频看片 | 亚洲欧洲精品无码AV| 99在线观看精品免费99| 亚洲午夜一区二区电影院| 日韩一区二区三区免费体验| 男女一边桶一边摸一边脱视频免费| 亚洲国产人成网站在线电影动漫 | a级毛片在线免费| 亚洲伊人久久大香线蕉啊| 免费又黄又爽又猛的毛片| 男人j进入女人j内部免费网站| 亚洲天堂2017无码中文| 亚洲国产a级视频| 亚洲成人免费电影| 黄色大片免费网站|