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

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

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

    城市獵人

    在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
    posts - 1, comments - 7, trackbacks - 0, articles - 89

    模式(七):適配器(Adapter)模式

    Posted on 2008-07-25 09:17 sailor 閱讀(147) 評論(0)  編輯  收藏 所屬分類: 模式

    定義
        將一個類的接口,轉換成客戶期望的另一個接口。適配器讓原本不兼容的類可以合作無間。

        類適配器可以分為類適配器和對象適配器

    adapter.bmp
    實用性
        當需要私用一個現有的類而其接口并不符合你需要的時,就使用適配器;

        適配器改變接口以符合用戶的期望;

    實例




     1package com.sailor.adapter;
     2
     3
     4/**
     5 * 被適配者
     6 * @author sailor
     7 * Jul 25, 2008 9:35:19 AM
     8 */

     9public class Duck {
    10    
    11    public Duck() {
    12
    13    }

    14
    15    public void fly(){
    16        System.out.println("I can fly");
    17    }

    18    
    19    public void quack(){
    20        System.out.println("quake!");
    21    }

    22}

    23


     

     1
     2package com.sailor.adapter;
     3
     4/**
     5 * 目標接口
     6 * @author sailor
     7 * Jul 25, 2008 9:43:35 AM
     8 */

     9public interface Turkey {
    10
    11    public void gobble();
    12    public void fly();
    13}

    14


     

     1
     2package com.sailor.adapter;
     3
     4/**
     5 * 適配器
     6 * @author sailor
     7 * Jul 25, 2008 9:38:10 AM
     8 */

     9public class TurkeyAdapter implements Turkey{
    10
    11    private Duck duck;
    12
    13    public TurkeyAdapter(Duck duck) {
    14        this.duck = duck;
    15    }

    16    
    17    public void gobble(){
    18        duck.quack();
    19    }

    20    
    21    public void fly(){
    22        duck.fly();
    23    }

    24    
    25    
    26}

    27


     

     1
     2package com.sailor.adapter;
     3
     4/**
     5 * 客戶端
     6 * @author sailor
     7 * Jul 25, 2008 9:45:29 AM
     8 */

     9public class Client {
    10
    11    /**
    12     * @param args
    13     */

    14    public static void main(String[] args) {
    15        
    16        Duck duck = new Duck();
    17        
    18        Turkey turkey = new TurkeyAdapter(duck);
    19        
    20        turkey.gobble();
    21        turkey.fly();
    22    }

    23
    24}

    25


        參考資料:《First Head 設計模式》

    主站蜘蛛池模板: 日本免费无遮挡吸乳视频电影| 国产婷婷高清在线观看免费| 亚洲一级免费视频| 在线观看免费大黄网站| 一个人晚上在线观看的免费视频| 亚洲AV午夜成人影院老师机影院| 黄页网站免费观看| 一级**爱片免费视频| 亚洲精品视频在线播放| 亚洲国产精品碰碰| 4虎永免费最新永久免费地址| 黄页视频在线观看免费| 亚洲一区二区三区夜色| 四虎永久成人免费影院域名| 2019中文字幕免费电影在线播放| 99久久久国产精品免费牛牛四川| 亚洲色精品三区二区一区| 久久精品国产精品亚洲| 女人18毛片水最多免费观看| 黄色网站软件app在线观看免费| 亚洲人成电影网站免费| 亚洲影院在线观看| 国产精品亚洲mnbav网站| 中国在线观看免费高清完整版| 香蕉视频在线免费看| 亚洲男同gay片| 亚洲黄色在线播放| 国产亚洲精品无码成人| 可以免费观看一级毛片黄a| AV无码免费永久在线观看| 成人无码a级毛片免费| 黄页视频在线观看免费| 亚洲精品无码中文久久字幕| 99久久亚洲综合精品成人网| 亚洲高清免费视频| 日韩精品免费一区二区三区| 亚欧免费视频一区二区三区| 曰批全过程免费视频在线观看无码| 黄页网站在线视频免费| 老牛精品亚洲成av人片| 亚洲精品天堂在线观看|