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内容变化,我只要再做一个继承子类就可以,不必修改其他应用代码。

下一节>

java 模板模式_Java模板模式(Template模式)相关推荐

  1. java模板方法模式_Java中的模板方法模式

    java模板方法模式 模板方法模式是一种行为模式,建议在超类中更一般地定义算法. 该算法是在称为模板方法的方法中定义的. 子类仅定义更具体的算法步骤的实现. 使用这种设计模式的好处是,算法后面的任何更 ...

  2. java 状态设计模式_JAVA设计模式:状态模式

    转载:http://www.cnblogs.com/pony1223/p/7518226.html 一.引出状态模式 假设我们现在有一个糖果机项目,那么我们知道正常一般糖果机提供给用户的行为有这么几种 ...

  3. java aes 模式_Java实现多种加密模式的AES算法-总有一种你用的着!

    前言 对于AES算法,相信很多程序员小伙伴都听过.用过,其原理本文就不介绍了,而是讲讲在实际项目中的应用.前几天,项目需要跟乙方接口对接,乙方提供加密后的信息串,而我这边负责对加密串进行解密.其中加解 ...

  4. java web简单工厂模式_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...

  5. java 设计模式 路由器_java设计模式2————工厂模式

    java设计模式2----工厂模式 1.工厂模式介绍: 1.1.实现了创建者与调用者的分离 1.2.详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式 1.3.所遵循的OOP原则: 开闭原则:对扩展 ...

  6. java策略模式_Java设计模式之策略模式详解

    本文实例为大家分享了Java策略模式,供大家参考,具体内容如下 1.策略模式(Strategy Pattern)是一种比较简单的模式,也叫做政策模式(PolicyPattern). 定义如下: Def ...

  7. Java创新型模式_java设计模式--创建型模式(一)

    2016-04-24 10:10:34 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 注意:工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂 ...

  8. 格力电器Java面试题_JAVA设计模式学习--工厂模式

    今天谈一下对工厂模式学习的总结. 看完视频和文章之后要自己表述工厂模式,总是感觉无从说起,不知道怎么去定义工厂模式,反复看了几遍之后终于理解一点. 自己理解工厂模式是通过这两种模式的特点来理解和定义的 ...

  9. java抽象工厂模式_JAVA设计模式-抽象工厂模式

    定义 抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构. 抽象工厂模 ...

最新文章

  1. 【Oracle Database】数据库用户管理
  2. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
  3. HDU多校7 - 6853 Jogging(bfs+结论)
  4. 京东开普勒php接口,IOS菜鸟初学第十五篇:接入京东开普勒sdk,呼起京东app打开任意京东的链接-Go语言中文社区...
  5. android 停止服务执行,android - 为什么在停止服务(执行onDestroy已执行)后,服务中的变量没有“重置”?...
  6. 阿里云云计算 42 CDN中的常用名词
  7. 火绒规则 禁止所有软件的安装_火绒小技巧:禁用程序上网就是这么简单
  8. 【商品架构day6】阿里闲鱼亿级商品结构化 - 用技术的力量去降低商户录入成本
  9. 计算机组成实验箱控制信号测,计算机组成原理实验报告-杨睿.doc
  10. js中RGB与十六进制颜色转换
  11. Android 12上焕然一新的小组件
  12. 制作右下角箭头的.9图片
  13. LDO线性稳压电源PCB布局布线
  14. 【Linux】/etc/issue、/etc/issue.net和/etc/motd的区别
  15. Android WebView 视频播放解决
  16. 【360安全浏览器】强效广告过滤推荐
  17. 在线教育平台项目——整体架构
  18. 5G智慧医疗十大应用场景,你知道多少?
  19. caxa图文档服务器未启动,05_CAXA图文档2013(实施指南)剖析.pptx
  20. 逻辑回归算法实现鸢尾花数据集的二分类

热门文章

  1. linux lib目录找不到,linux中jpeglib库文件我安装了,但是我运行自己写的代码总是找不到这个库...
  2. C语言逻辑运算符详解
  3. Brief C Programs of the Bombs
  4. arm linux sms,基于arm处理器的手机短消息加密系统 encryption system for sms based on arm.pdf...
  5. 【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理
  6. 【OpenCV 例程200篇】21. 图像的叠加
  7. vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...
  8. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...
  9. Pytest-ordering自定义用例执行顺序
  10. 【Linux】free命令查询服务器内存信息