一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java設計模式之模板模式(Template模式)介紹

Java設計模式之模板模式(Template模式)介紹

2019-12-11 13:48junjie JAVA教程

這篇文章主要介紹了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內容變化,我只要再做一個繼承子類就可以,不必修改其他應用代碼。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本中文字幕在线视频 | 国产区最新 | 日本不卡免费新一二三区 | 美女私人影院 | 男男互操文 | 91资源在线视频 | 青青成人福利国产在线视频 | 波多野结衣小说 | 日本一区二区三区久久 | 欧洲老太玩小伙 | 久久毛片视频 | 婚前试爱免费观看 | 欧美多gayxxxx | 天天做日日做 | 欧美高清在线精品一区二区不卡 | 日韩精品视频观看 | 精灵之森高清在线 | 男人机机桶女人 | 免费亚洲视频 | 俄罗斯一级毛片免费播放 | 奇米影视久久777中文字幕 | 奇米影视先锋 | 国产亚洲自愉自愉 | 亚欧综合| s0e一923春菜花在线播放 | 小便japanesewctv | www.四虎.com | 色综合伊人色综合网站中国 | 国产精品 视频一区 二区三区 | 四虎精品免费国产成人 | 亚洲第一综合天堂另类专 | 天天操天天射天天色 | 视频一区二区三区在线观看 | 9久爱午夜视频 | 都市后宫小说 | 欧美精品一区二区三区免费播放 | 羞羞污视频 | 日本在线一区二区 | 九九热在线免费观看 | 青青草99热这里都是精品 | 日本护士xxxx爽爽爽 |