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

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

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

    合工大很牛很牛牛

      BlogJava :: 首頁(yè) :: 聯(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類來(lái)完成轉(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 化的了 閱讀(1333) 評(píng)論(1)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

    Feedback

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

    主站蜘蛛池模板: 成人在线免费视频| 免费人妻av无码专区| 两性色午夜免费视频| 亚洲午夜在线播放| 亚洲人成电影福利在线播放| 亚洲人成无码www久久久| 午夜毛片不卡免费观看视频| aⅴ免费在线观看| 日本视频免费高清一本18| 亚美影视免费在线观看| 国产天堂亚洲精品| 亚洲AV综合永久无码精品天堂| 亚洲天堂中文字幕在线观看| 亚洲久本草在线中文字幕| 亚洲熟妇av一区二区三区| 亚洲福利中文字幕在线网址| 国产自产拍精品视频免费看| 24小时免费直播在线观看| 精品免费久久久久久久| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲一级视频在线观看| 亚洲高清不卡视频| 亚洲男人的天堂在线播放| 亚洲AV福利天堂一区二区三| 精品国产_亚洲人成在线高清| 中国亚洲女人69内射少妇| 久久精品国产精品亚洲艾草网美妙 | 亚洲天堂在线视频| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲国产专区一区| 亚洲国产人成中文幕一级二级| mm1313亚洲国产精品美女| 婷婷亚洲天堂影院| 亚洲片国产一区一级在线观看 | 草久免费在线观看网站| 二级毛片免费观看全程| 国产在线观看无码免费视频| 免费看无码特级毛片| 一区二区三区福利视频免费观看| 久久精品一本到99热免费| www视频在线观看免费|