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

java設計模式之Template(算法的骨架)

2013-11-23 19:53:18  來源: Java高級技術 

  Template定義:
  定義一個操作中算法的骨架將一些步驟的執行延遲到其子類中
  
  其實Java的抽象類本來就是Template模式因此使用很普遍而且很容易理解和使用我們直接以示例開始:
  
  public abstract class Benchmark
  {
    /**
    * 下面操作是我們希望在子類中完成
    */
    public abstract void benchmark();
    /**
    * 重復執行benchmark次數
    */
    public final long repeat (int count) {
      if (count <= )
        return ;
      else {
        long startTime = SystemcurrentTimeMillis();
  
      for (int i = ; i < count; i++)
        benchmark();
  
      long stopTime = SystemcurrentTimeMillis();
      return stopTime startTime;
    }
  }
  }
  
  在上例中我們希望重復執行benchmark()操作但是對benchmark()的具體內容沒有說明而是延遲到其子類中描述:
  
  public class MethodBenchmark extends Benchmark
  {
    /**
    * 真正定義benchmark內容
    */
    public void benchmark() {
  
      for (int i = ; i < IntegerMAX_value; i++){
        Systemoutprinttln(i=+i);    
      }
    }
  }
  
  至此Template模式已經完成是不是很簡單?看看如何使用:
  
  Benchmark operation = new MethodBenchmark();
  long duration = operationrepeat(IntegerparseInt(args[]trim()));
  Systemoutprintln(The operation took + duration + milliseconds);
  
  也許你以前還疑惑抽象類有什麼用現在你應該徹底明白了吧? 至於這樣做的好處很顯然啊擴展性強以後Benchmark內容變化我只要再做一個繼承子類就可以不必修改其他應用代碼
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27628.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.