設計模式之Template

原创 2004年06月24日 19:57:00

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

ANDROID 中设计模式的采用--创建型模式

模式在某一情景下解决某个问题的固定解决方案。 所有的创建型模式都是用作解决对象的创建或实例化问题的解决方案。 1  简单工厂模式 创建对象的最简单方法是使用new来创建一个对象,如果只创建一种固...
  • GooHong
  • GooHong
  • 2014年07月22日 16:39
  • 2715

《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式

断断续续的,《Android源码设计模式解析》也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响。 我觉得这本书的最大价值有两点,一个是从设计...
  • bz419927089
  • bz419927089
  • 2015年12月13日 18:03
  • 14765

IT架构设计_隽语集(EIT設計模式_0601)

前言:架构师应该具备产业分析能力,于是,他就能设计出一份,这问题悠关于该标的产品(target product)在标的市场(target market)里的问题,其含盖用户体验、竞争优势等。这份问题...
  • u013821818
  • u013821818
  • 2014年03月02日 14:14
  • 1074

设计模式之模板方法(Template)

  • 2011年07月07日 09:39
  • 10KB
  • 下载

C# 设计模式-模板方法(Template Method)

定义一个操作中的算法骨架,将某些步骤延迟到子类中实现,使得子类可在不改变算法结构的前提下重定义某些步骤。主要组成:AbstractClass-抽象父类,实现模板方法,定义算法的骨架。 Concret...
  • m0_37862405
  • m0_37862405
  • 2018年01月12日 18:11
  • 45

Java设计模式透析之 —— 模板方法(Template Method)

今天你还是像往常一样来上班,一如既往地开始了你的编程工作。 项目经理告诉你,今天想在服务器端增加一个新功能,希望写一个方法,能对Book对象进行处理,将Book对象的所有字段以XML格式进行包装,这样...
  • sinyu890807
  • sinyu890807
  • 2013年03月31日 21:33
  • 20024

设计模式之Template Method (模板方法)

1.Template Method ( 模板方法 ) 设计模式的核心思想 : 抽象类规定业务逻辑,实际的处理由子类完成。     2. 让我们来看看这个设计模式是怎么来设计的: ...
  • jamejame
  • jamejame
  • 2012年04月12日 20:22
  • 158

Android框架设计模式(一)——Template Methods

这两天开始学习高焕堂老师的Android的设计模式,感觉他的讲解非常透彻,把Android框架和设计模式结合讲解,在Android这个大而全的体系框架中,从整体上把握设计模式的应用,感觉对Androi...
  • woshimalingyi
  • woshimalingyi
  • 2016年03月09日 13:23
  • 989

Java设计模式透析之 —— 模板方法(Template Method)

今天你还是像往常一样来上班,一如既往地开始了你的编程工作。 项目经理告诉你,今天想在服务器端增加一个新功能,希望写一个方法,能对Book对象进行处理,将Book对象的所有字段以XML格式进行包装...
  • lxq_xsyu
  • lxq_xsyu
  • 2013年08月05日 08:16
  • 1525

设计模式之22 - 模板方法Template method

模板 是一个通俗的概念定义,PPT模板、Word模板、Excel模板,你能接触的模板有很多,模板其实就是一个 Example、一个框架,你根据这个例子去具体实现。         模板方法 的概念与此...
  • linolzhang
  • linolzhang
  • 2017年01月13日 20:21
  • 269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:設計模式之Template
举报原因:
原因补充:

(最多只允许输入30个字)