<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)論
      

    主站蜘蛛池模板: 免费国产a国产片高清| 国产成人福利免费视频| 免费看国产精品麻豆| 亚洲欧美日韩综合久久久| 24小时日本在线www免费的| 亚洲色大成网站www久久九 | 中文字幕久精品免费视频 | 亚洲国产综合专区电影在线 | 日本免费一区二区在线观看| 亚洲第一页在线播放| 日韩亚洲国产高清免费视频| 亚洲sss综合天堂久久久| 在线免费观看一区二区三区| 国产精品亚洲专区在线播放| 亚洲综合亚洲综合网成人| 香蕉视频在线免费看| 久久精品国产精品亚洲蜜月| 91高清免费国产自产| 亚洲中文字幕AV每天更新| 午夜亚洲国产成人不卡在线| 成人国产精品免费视频| 91亚洲精品视频| 暖暖免费高清日本一区二区三区| 特级毛片A级毛片免费播放| 中文字幕中韩乱码亚洲大片| 久久精品毛片免费观看| 亚洲日韩AV无码一区二区三区人| 亚洲国产精品综合久久网络 | 91视频免费网站| 亚洲国产精品无码久久久| 国产一级淫片免费播放电影| 人妻在线日韩免费视频| 激情综合亚洲色婷婷五月| 亚洲精品视频在线看| 免费国产黄网站在线观看| 亚洲AV无码成人精品区狼人影院 | 久久精品中文字幕免费| 亚洲最大av资源站无码av网址| 亚洲成a人片在线观看久| 99爱视频99爱在线观看免费| 亚洲av无码一区二区三区人妖|