<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用藍色的儀表盤顯示車的速度

    這就是模板方法模式,一個最常用,最容易理解的一個模式,將相同的功能抽象出來成一個父類,然后用子類做不同功能的實現。
    主站蜘蛛池模板: 成人免费午夜在线观看| 国产福利免费视频| 亚洲国产成a人v在线| 久久亚洲精品AB无码播放| 国产AV无码专区亚洲AV男同 | a免费毛片在线播放| jizz免费观看视频| 一个人看的在线免费视频| 成人av片无码免费天天看| 成在线人视频免费视频 | 亚洲午夜成人精品无码色欲| 亚洲a级片在线观看| 亚洲中文字幕无码mv| 亚洲老熟女五十路老熟女bbw| 亚洲免费网站观看视频| 亚洲AV无码一区二区一二区| 在线观看国产一区亚洲bd| 国产精品亚洲片在线花蝴蝶| a毛片成人免费全部播放| 国产成人无码区免费网站| 57pao一国产成永久免费| 午夜宅男在线永久免费观看网| 好男人视频社区精品免费| 精品无码国产污污污免费| 亚洲国产精品无码久久九九 | 日韩亚洲国产高清免费视频| 最近免费中文字幕大全视频 | 四虎永久成人免费| 国产亚洲成人在线播放va| 久久精品亚洲综合专区| 亚洲AV无码一区二区三区在线| 亚洲精品无码专区在线播放| 美女18一级毛片免费看| 成人片黄网站色大片免费观看APP| 精品无码无人网站免费视频| 成年美女黄网站色大免费视频| 亚洲AV无码一区二区三区国产| 亚洲AV电影院在线观看| 亚洲第一区二区快射影院| a免费毛片在线播放| 四虎永久在线精品免费观看视频|