- 浏览: 1504738 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
Template模板模式定义: 使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用。
定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.
适用条件:1) 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。
2) 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。
3) 控制子类扩展。模板方法只在特定点调用操作,这样就只允许在这些点进行扩展。如果你不愿子类来修改你的模板方法定义的框架,你可以采用两种方式来做:一是在API中不体现出你的模板方法;二、将你的模板方法置为final就可以了。
/** for (int i = 0; i < count; i++) 在上例中,我们希望重复执行benchmark()操作,但是对benchmark()的具体内容没有说明,而是延迟到其子类中描述: 至此,Template模式已经完成,是不是很简单? 我们称repeat方法为模板方法, 它其中的benchmark()实现被延迟到子类MethodBenchmark中实现了, 看看如何使用: Benchmark operation = new MethodBenchmark(); 也许你以前还疑惑抽象类有什么用,现在你应该彻底明白了吧? 至于这样做的好处,很显然啊,扩展性强,以后Benchmark内容变化,我只要再做一个继承子类就可以,不必修改其他应用代码.
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();
benchmark();
long stopTime = System.currentTimeMillis();
return stopTime - startTime;
}
}
}
public class MethodBenchmark extends Benchmark
{
/**
* 真正定义benchmark内容
*/
public void benchmark() {
for (int i = 0; i < Integer.MAX_VALUE; i++){
System.out.printtln("i="+i);
}
}
}
long duration = operation.repeat(Integer.parseInt(args[0].trim()));
System.out.println("The operation took " + duration + " milliseconds");
发表评论
-
设计模式系列-适配器模式(&几种模式的链接)
2011-09-02 15:55 2101一、上篇回顾 通过上篇的简单讲解,我们知道了,组 ... -
java回调函数
2011-09-01 16:31 1453所谓回调,就是客户程序C调用服务程序S中的某个方法a,然后S又 ... -
深入浅出java命令模式
2011-08-20 14:39 1145一、引言 忙里偷闲, ... -
Java命令模式:设计模式的四人帮
2011-08-20 11:47 1740本文介绍了一个Java设 ... -
Java命令模式:设计模式的四人帮
2011-08-20 11:07 2本文介绍了一个Java设 ... -
桥接模式
2011-07-14 14:27 3841桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个 ... -
Java设计模式圣经连载(03)-抽象工厂模式
2011-07-05 09:18 12661.3 抽象工厂(Abstract F ... -
JDK里的设计模式
2011-06-28 16:07 1383下面是JDK中有关23个经典设计模式的示例,在stakeove ... -
UML类图关系全面剖析
2011-06-28 10:38 2099UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。 ... -
设计模式-火龙果
2011-06-22 16:19 1205鸭子-策略模式(Strategy) http://www.u ... -
设计模式之六大原则——单一职责原则(SRP)
2010-10-19 08:48 1959开闭原则(Open Closed Pr ... -
状态模式和策略模式的比较
2010-09-27 19:56 1233状态模式(state pattern)和 ... -
简单工厂模式-《java与模式》
2010-09-26 19:50 1361缺点: 1、工厂类成为 ... -
门面模式-《java与模式》
2010-09-26 19:01 14741、医院的例子 病人 ... -
相关知识
2010-09-21 15:14 11441、java设计模式之实例详解http://java.chin ... -
工厂模式-设计模式-笔记(一)
2010-09-09 18:33 1267我们不应该针对实现编程,但是当我每次使用new时,不正是在针对 ... -
装饰者模式-设计模式-笔记(二)
2010-09-08 08:38 1540装饰java.io类: InputStream //抽象组件 ... -
来杯咖啡-装饰者模式(Decorator)
2010-09-07 21:31 1486前言 上篇【观察者模 ... -
观察者模式-设计模式-笔记(一)
2010-09-06 14:53 1121出版者+订阅者==观察者模式 报纸的订阅 出版 ... -
设计模式-笔记(三)
2010-09-06 10:56 1413设计原则: 多用组合,少用继承 以上笔记介绍的是策略 ...
相关推荐
模板方法设计模式是一种在面向对象设计中非常常用的设计模式,它的主要目的是为了封装算法或操作流程的固定部分,同时允许子类对其中某些特定步骤进行定制。这种模式遵循开闭原则,即对扩展开放,对修改关闭,允许...
面向对象编程是软件开发中的核心思想之一,而模板方法设计模式是这种思想在实践中的一种具体应用。本章我们将深入探讨“模板方法设计模式”,并结合Java语言进行详细讲解。 模板方法设计模式是一种行为设计模式,它...
Java 模板方法设计模式定义 Java 模板方法设计模式是指在软件开发过程中,通过定义一个通用的算法结构,然后将具体的实现细节交给子类来完成的设计模式。该模式的核心思想是,通过回调函数来实现算法的可扩展性和...
模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...
设计模式之模板方法模式,这份文档以例子的形式介绍了模板方法模式
模板方法模式是设计模式中行为型模式的一种,它在软件工程中扮演着非常重要的角色,尤其是在Java编程中。模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重...
模板方法模式是设计模式中行为模式的一种,它在软件工程中扮演着重要的角色,尤其是在创建算法框架时。这种模式允许我们在抽象类中定义一个算法的骨架,而将一些步骤延迟到子类中实现,使得子类可以不改变算法的结构...
模板方法设计模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色。这个模式的主要目的是定义一个操作的框架,允许子类在不改变整体结构的情况下重定义具体步骤。这有助于保持代码的整洁,实现代码复用,并...
模板方法设计模式是行为设计模式的一种,它定义了算法的骨架,允许在子类中定义算法的某些步骤。在这个场景下,"设计模式之模板方法测试代码"指的是一个用于验证模板方法模式实现的C++代码示例。 模板方法模式的...
模板方法设计模式是一种在面向对象设计中常用的行为型设计模式,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类在不改变算法整体结构的情况下,重定义某些特定步骤。 在软件开发中,模板...
模板方法设计模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色,尤其是在代码复用和保持结构一致性方面。这种模式定义了操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个...
### C++设计模式课件3_Template Method_模板方法 #### 模板方法设计模式解析 模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式...
### 设计模式之模板方法模式解析 #### 一、引言 在软件开发过程中,我们经常面临这样的场景:有一些步骤是固定的,而某些步骤则可能因具体实现而异。为了解决这类问题,设计模式中引入了一种叫做“模板方法模式”的...
### 深入浅出设计模式之模板方法模式 #### 一、模板方法模式概述 设计模式是软件工程中一种非常重要的技术手段,它能够帮助我们解决常见的编程问题,并提高代码的可重用性、可扩展性和可维护性。模板方法模式是一...
模板方法设计模式是一种行为设计模式,它允许我们在父类中定义一个算法的骨架,而将一些步骤延迟到子类中。这种模式使得子类可以在不改变算法结构的情况下,重写特定的步骤。 在JavaScript中实现模板方法,主要利用...
《模板方法设计模式详解》 模板方法设计模式是面向对象设计模式中的一种行为模式,它允许在父类中定义一个算法的框架,而将一些步骤的实现延迟到子类中。这种模式通常用于代码复用,特别是在有多个相似类,但它们在...
模板方法模式是面向对象设计中的一种行为设计模式,它在软件工程中扮演着重要的角色,尤其是在需要维护代码的可扩展性和可复用性时。这个模式的核心思想是封装不变的部分,将可变部分抽象出来,让子类进行扩展。通过...
策略模式结合模板方法模式的设计思路 策略模式结合模板方法模式是策略模式的一种变形,目的是为了解决策略模式中的一些共性问题。在策略模式中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能...