自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

J2EE設(shè)計(jì)模式之Template

開(kāi)發(fā) 后端
本文介紹了J2EE設(shè)計(jì)模式中的Template的用法。其實(shí)Java的抽象類(lèi)本來(lái)就是Template模式,因此使用很普遍,而且很容易理解和使用。使用抽象類(lèi)可以大大增強(qiáng)項(xiàng)目的擴(kuò)展性。

Template定義:

定義一個(gè)操作中算法的骨架,將一些步驟的執(zhí)行延遲到其子類(lèi)中.

其實(shí)Java的抽象類(lèi)本來(lái)就是Template模式,因此使用很普遍.而且很容易理解和使用,我們直接以示例開(kāi)始:

  1. public abstract class Benchmark  
  2. {  
  3.   /**  
  4.   * 下面操作是我們希望在子類(lèi)中完成  
  5.   */ 
  6.   public abstract void benchmark();   
  7.  
  8.   /**  
  9.   * 重復(fù)執(zhí)行benchmark次數(shù)  
  10.   */ 
  11.   public final long repeat (int count) {  
  12.     if (count <= 0)  
  13.       return 0;  
  14.     else {  
  15.       long startTime = System.currentTimeMillis();  
  16.  
  17.     for (int i = 0; i < count; i++)   
  18.       benchmark();  
  19.  
  20.     long stopTime = System.currentTimeMillis();  
  21.     return stopTime - startTime;  
  22.   }  
  23. }  
  24. }  

在上例中,我們希望重復(fù)執(zhí)行benchmark()操作,但是對(duì)benchmark()的具體內(nèi)容沒(méi)有說(shuō)明,而是延遲到其子類(lèi)中描述:

  1. public class MethodBenchmark extends Benchmark  
  2. {  
  3.   /**  
  4.   * 真正定義benchmark內(nèi)容  
  5.   */ 
  6.   public void benchmark() {  
  7.  
  8.     for (int i = 0; i < Integer.MAX_VALUE; i++){  
  9.       System.out.printtln("i="+i);      
  10.     }  
  11.   }  
  12. }  

至此,Template模式已經(jīng)完成,是不是很簡(jiǎn)單?看看如何使用:

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

也許你以前還疑惑抽象類(lèi)有什么用,現(xiàn)在你應(yīng)該徹底明白了吧? 至于這樣做的好處,很顯然啊,擴(kuò)展性強(qiáng),以后Benchmark內(nèi)容變化,我只要再做一個(gè)繼承子類(lèi)就可以,不必修改其他應(yīng)用代碼。

【編輯推薦】

  1. J2EE之DAO設(shè)計(jì)模式簡(jiǎn)介與實(shí)例
  2. J2EE常用的設(shè)計(jì)模式
  3. 使用WebSphere構(gòu)建J2EE應(yīng)用程序
  4. J2EE歷史簡(jiǎn)述
  5. Spring的起源和背景 以及你為什么要使用Spring
責(zé)任編輯:book05 來(lái)源: 百度博客
相關(guān)推薦

2009-06-11 17:23:09

J2EE設(shè)計(jì)模式State模式

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設(shè)計(jì)模式

2009-06-11 17:11:07

J2EE設(shè)計(jì)模式工廠模式

2009-06-11 17:13:44

J2EE設(shè)計(jì)模式Dao設(shè)計(jì)模式

2009-06-10 14:10:23

J2EE學(xué)習(xí)J2EE是什么

2009-06-11 17:24:46

J2EE的MVC體系結(jié)J2EE設(shè)計(jì)模式

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護(hù)

2009-06-23 16:48:26

J2EE常見(jiàn)問(wèn)題J2EE平臺(tái)

2009-06-22 17:05:41

Java EEJava企業(yè)應(yīng)用

2009-09-23 17:11:18

數(shù)據(jù)持久層Hibernate

2009-06-22 16:21:02

J2EE線程

2009-06-18 16:13:14

J2EE開(kāi)發(fā)

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE調(diào)用存儲(chǔ)過(guò)程

2009-06-22 17:34:40

J2EE架構(gòu)

2009-06-22 09:34:00

Servlet的生命周

2019-01-08 16:26:43

Java EEJ2EEJakarta EE

2009-06-23 16:50:24

2009-06-23 16:52:55

J2EE縮寫(xiě)名詞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)