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

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

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

    爪哇一角

    共同探討STRUTS#HIBERNATE#SPRING#EJB等技術
    posts - 3, comments - 6, trackbacks - 0, articles - 99
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    模板方法模式

    Posted on 2009-01-20 17:29 非洲小白臉 閱讀(1724) 評論(0)  編輯  收藏 所屬分類: 模式
    設計模式-快餐簡解-【模板方法模式】

    模板方法模式應用場景舉例
    比如在玩“極品飛車”這款游戲,每輛車都有顯示速度的儀表盤,但有可能A車顯示的是藍色的儀表盤,B車顯示的是紅色的儀表盤,分析中可以發現,他們都 有車速度的值,但顯示的方式不太一樣。其實模板方法就是最典型的“繼承”的使用,大家平時百分百都可以用到,只是不知道叫模板方法模式:)!

    模板方法模式解釋
    類型:行為模式
      模板方法模式定義一個操作中算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

    模板方法模式UML圖


    模板方法模式-JAVA代碼實現
    新建賽車的父類:
    package car_package;

    public class car_parent {

        
    private int speed;

        
    public int getSpeed() {
            
    return speed;
        }

        
    public void setSpeed(int speed) {
            
    this.speed = speed;
        }

        
    public void print_speed() {
            System.out.println(
    "將速度" + this.getSpeed() + "取出來!");

        }

    }


    新建紅色儀表盤的賽車實現類:

    package car_imple;

    import car_package.car_parent;

    public class car_imple_red extends car_parent {

        @Override
        
    public void print_speed() {
            
    super.print_speed();
            System.out.println(
    "將速度" + this.getSpeed() + "用紅色的儀表盤顯示車的速度");
        }

    }


    新建藍色儀表盤的賽車實現類:

    package car_imple;

    import car_package.car_parent;

    public class car_imple_blue extends car_parent {

        @Override
        
    public void print_speed() {
            
    super.print_speed();
            System.out.println(
    "將速度" + this.getSpeed() + "用藍色的儀表盤顯示車的速度");
        }

    }

     

      新建客戶端運行類:

    package run_main;

    import car_imple.car_imple_blue;
    import car_imple.car_imple_red;
    import car_package.car_parent;

    public class run_main {

        
    public static void main(String[] args) {

            car_parent car_ref_red 
    = new car_imple_red();
            car_ref_red.setSpeed(
    300);
            car_ref_red.print_speed();

            car_parent car_ref_blue 
    = new car_imple_blue();
            car_ref_blue.setSpeed(
    400);
            car_ref_blue.print_speed();

        }

    }


    程序運行結果如下:

    將速度300取出來!
    將速度300用紅色的儀表盤顯示車的速度
    將速度400取出來!
    將速度400用藍色的儀表盤顯示車的速度

    這就是模板方法模式,一個最常用,最容易理解的一個模式,將相同的功能抽象出來成一個父類,然后用子類做不同功能的實現。
    主站蜘蛛池模板: 91av在线免费视频| 国产午夜不卡AV免费| 国产情侣激情在线视频免费看| 亚洲永久精品ww47| 精品人妻系列无码人妻免费视频 | 亚洲中文久久精品无码1| 日本在线看片免费人成视频1000 | 久久国产精品免费专区| 亚洲av一综合av一区| 久艹视频在线免费观看| 亚洲国产精品自在线一区二区| 色欲国产麻豆一精品一AV一免费| 久久亚洲精品AB无码播放| www视频免费看| 日韩亚洲产在线观看| 日韩毛片无码永久免费看| 国产成人精品亚洲一区| 亚洲黄片毛片在线观看| 中国一级毛片视频免费看| 久久亚洲精品中文字幕无码| 四虎永久在线精品免费观看视频| 国产婷婷综合丁香亚洲欧洲| 免费一级e一片在线播放| 91精品成人免费国产| 久久精品国产亚洲av麻豆色欲| 免费无码黄十八禁网站在线观看| 午夜亚洲国产理论片二级港台二级| 亚洲国产精品自产在线播放| 日韩视频免费在线观看| 久久精品国产亚洲AV蜜臀色欲| 国产特级淫片免费看| 中文字幕免费播放| 亚洲国产日韩在线人成下载| 在线日韩av永久免费观看| 毛片基地看看成人免费| 亚洲欧洲日韩综合| 一区国严二区亚洲三区| 亚洲精品视频在线免费| 羞羞视频免费网站入口| 久久久久久亚洲精品成人| 四虎亚洲国产成人久久精品|