程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java設計形式之模板形式(Template形式)引見

Java設計形式之模板形式(Template形式)引見

編輯:關於JAVA

Java設計形式之模板形式(Template形式)引見。本站提示廣大學習愛好者:(Java設計形式之模板形式(Template形式)引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計形式之模板形式(Template形式)引見正文


Template形式界說:界說一個操作中算法的骨架,將一些步調的履行延遲到其子類中。

其實Java的籠統類原來就是Template形式,是以應用很廣泛。並且很輕易懂得和應用,我們直接以示例開端:

public abstract class Benchmark
{
  /**
  * 上面操作是我們願望在子類中完成
  */
  public abstract void benchmark();

  /**
  * 反復履行benchmark次數
  */
  public final long repeat (int count) {
    if (count <= 0)
      return 0;
    else {
      long startTime = System.currentTimeMillis();
            for (int i = 0; i < count; i++)
          benchmark();
                long stopTime = System.currentTimeMillis();
                return stopTime - startTime;
          }
        }
}

在上例中,我們願望反復履行benchmark()操作,然則對benchmark()的詳細內容沒有解釋,而是延遲到其子類中描寫:

public class MethodBenchmark extends Benchmark
{
  /**
  * 真正界說benchmark內容
  */
  public void benchmark() {
    for (int i = 0; i < Integer.MAX_VALUE; i++){
      System.out.printtln("i="+i);    
       }
  }
}


至此,Template形式曾經完成,是否是很簡略?看看若何應用:

   Benchmark operation = new MethodBenchmark();
    long duration = operation.repeat(Integer.parseInt(args[0].trim()));
    System.out.println("The operation took " + duration + " milliseconds");

或許你之前還困惑籠統類有甚麼用,如今你應當完全明確了吧?至於如許做的利益,很明顯啊,擴大性強,今後Benchmark內容變更,我只需再做一個繼續子類便可以,不用修正其他運用代碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved