熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

設計模式-快餐簡解-【模板方法模式】

2013-11-23 19:49:04  來源: Java高級技術 

  【模板方法模式應用場景舉例

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

  【模板方法模式解釋

  類型行為模式

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

  【模板方法模式UML圖

  

  【模板方法模式JAVA代碼實現

  新建賽車的父類

   package car_package;
public class car_parent {
    private int speed;
    public int getSpeed() {
        return speed;
    }
    public void setSpeed(int speed) {
        thisspeed = speed;
    }
    public void print_speed() {
        Systemoutprintln(將速度 + thisgetSpeed() + 取出來!);
    }
}

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

   package car_imple;

import car_packagecar_parent;

public class car_imple_red extends car_parent {

    @Override
    public void print_speed() {
        superprint_speed();
        Systemoutprintln(將速度 + thisgetSpeed() + 用紅色的儀表盤顯示車的速度);
    }

}

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

   package car_imple;

import car_packagecar_parent;

public class car_imple_blue extends car_parent {

    @Override
    public void print_speed() {
        superprint_speed();
        Systemoutprintln(將速度 + thisgetSpeed() + 用藍色的儀表盤顯示車的速度);
    }
}

  新建客戶端運行類

   package run_main;

import car_implecar_imple_blue;
import car_implecar_imple_red;
import car_packagecar_parent;

public class run_main {

    public static void main(String[] args) {

        car_parent car_ref_red = new car_imple_red();
        car_ref_redsetSpeed();
        car_ref_redprint_speed();

        car_parent car_ref_blue = new car_imple_blue();
        car_ref_bluesetSpeed();
        car_ref_blueprint_speed();
    }
}

  程序運行結果如下

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

  這就是模板方法模式一個最常用最容易理解的一個模式將相同的功能抽象出來成一個父類然後用子類做不同功能的實現

  【模板方法模式MyEclipse項目JAVA代碼實現

  模板方法模式template_method示例代碼點擊


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27502.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.