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

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

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

    合工大很牛很牛牛

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      14 Posts :: 1 Stories :: 37 Comments :: 0 Trackbacks
     

    新舊兩個(gè)接口,功能類似,舊的接口已漸漸不再使用,如何讓舊接口調(diào)整為新接口的樣式呢(方便其他程序調(diào)用)?寫一個(gè)銜接作用的adapter即可。

     

    如下:DuckTurkey是兩個(gè)接口,他們的功能類似,僅僅是方法的名稱不同。如何把Turkey接口調(diào)整成Duck,以方便調(diào)用呢?

    package javaapplication31;

     

    public class Main {

        public static void main(String[] args) {

            Duck duck = new MallardDuck();

            duck.quack();

            Turkey turkey = new WildTurkey();

            turkey.gobble();

        }

    }

     

    interface Duck {

        public void quack();

        public void fly();

    }

     

    class MallardDuck implements Duck {

        public void quack() {

            System.out.println("Mallard quacked");

        }

        public void fly() {

            System.out.println("Mallard flying");

        }

    }

     

    interface Turkey {

        public void gobble();

        public void fly();

    }

     

    class WildTurkey implements Turkey {

        public void gobble() {

            System.out.println("Wild gobbled");

        }

        public void fly() {

            System.out.println("Wild flying");

        }

    }

     

     

    新增一個(gè)TurkeyAdapter類來完成轉(zhuǎn)換:

     

    package javaapplication31;

     

    public class Main {

        public static void main(String[] args) {

            Duck duck = new MallardDuck();

            duck.quack();

           

            Turkey turkey = new WildTurkey();

            duck = new TurkeyAdapter(turkey);

            duck.quack();

        }

    }

     

    interface Duck {

        public void quack();

        public void fly();

    }

     

    class MallardDuck implements Duck {

        public void quack() {

            System.out.println("Mallard quacked");

        }

        public void fly() {

            System.out.println("Mallard flying");

        }

    }

     

    class TurkeyAdapter implements Duck {

        Turkey turkey;

        TurkeyAdapter(Turkey turkey) {

            this.turkey = turkey;

        }

        public void quack() {

            turkey.gobble();

        }

        public void fly() {

            turkey.fly();

        }

    }

     

    interface Turkey {

        public void gobble();

        public void fly();

    }

     

    class WildTurkey implements Turkey {

        public void gobble() {

            System.out.println("Wild gobbled");

        }

        public void fly() {

            System.out.println("Wild flying");

        }

    }

      

    看到這個(gè)Adapter,是否想到了Command Pattern中的“裝載器”呢?異曲同工之妙。

     

     

     

     

    posted on 2008-07-02 16:54 化的了 閱讀(1332) 評(píng)論(1)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

    Feedback

    # re: 適配器模式 Adapter Pattern 2008-07-03 02:04 育平
    思路很清晰,我看明白并理解Adapter Pattern了,謝謝!  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: AV激情亚洲男人的天堂国语| 在线观看亚洲免费| 亚洲日韩精品一区二区三区| 噜噜噜亚洲色成人网站| 日本牲交大片免费观看| 亚洲色偷精品一区二区三区| 久久精品女人天堂AV免费观看| 亚洲人成网男女大片在线播放| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 国产亚洲成人在线播放va| 一区二区三区精品高清视频免费在线播放 | 亚洲www在线观看| 成熟女人牲交片免费观看视频 | 亚洲中文字幕视频国产| 在线观看免费黄色网址| 亚洲AV无码乱码国产麻豆穿越 | 67194国产精品免费观看| 亚洲乱人伦精品图片| 亚洲高清中文字幕免费| 性色av极品无码专区亚洲| 亚洲第一页综合图片自拍| jizz免费在线观看| 亚洲三级电影网址| 免费国产黄线在线观看| 国产精品亚洲а∨无码播放麻豆| 亚洲高清成人一区二区三区 | 24小时免费看片| 亚洲精品国产av成拍色拍| 亚洲午夜福利精品无码| 日韩人妻无码精品久久免费一| 亚洲国产模特在线播放| 国产精品公开免费视频| 国产特黄一级一片免费| 91亚洲国产成人久久精品网站| 大学生a级毛片免费观看| 五级黄18以上免费看| 久久精品国产精品亚洲毛片| 特级淫片国产免费高清视频| 成全视频在线观看免费| 在线观看亚洲AV日韩AV| 亚洲中文字幕不卡无码|