新聞中心
Template定義:

在洪山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),洪山網(wǎng)站建設(shè)費(fèi)用合理。
定義一個操作中算法的骨架,將一些步驟的執(zhí)行延遲到其子類中.
其實Java的抽象類本來就是Template模式,因此使用很普遍.而且很容易理解和使用,我們直接以示例開始:
- public abstract class Benchmark
- {
- /**
- * 下面操作是我們希望在子類中完成
- */
- public abstract void benchmark();
- /**
- * 重復(fù)執(zhí)行benchmark次數(shù)
- */
- 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;
- }
- }
- }
在上例中,我們希望重復(fù)執(zhí)行benchmark()操作,但是對benchmark()的具體內(nèi)容沒有說明,而是延遲到其子類中描述:
- public class MethodBenchmark extends Benchmark
- {
- /**
- * 真正定義benchmark內(nèi)容
- */
- public void benchmark() {
- for (int i = 0; i < Integer.MAX_VALUE; i++){
- System.out.printtln("i="+i);
- }
- }
- }
至此,Template模式已經(jīng)完成,是不是很簡單?看看如何使用:
- Benchmark operation = new MethodBenchmark();
- long duration = operation.repeat(Integer.parseInt(args[0].trim()));
- System.out.println("The operation took " + duration + " milliseconds");
也許你以前還疑惑抽象類有什么用,現(xiàn)在你應(yīng)該徹底明白了吧? 至于這樣做的好處,很顯然啊,擴(kuò)展性強(qiáng),以后Benchmark內(nèi)容變化,我只要再做一個繼承子類就可以,不必修改其他應(yīng)用代碼。
網(wǎng)頁題目:J2EE設(shè)計模式之Template
鏈接分享:http://fisionsoft.com.cn/article/cdsshis.html


咨詢
建站咨詢
