- 浏览: 387756 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Nabulio:
写的详细,特殊语法学习到了
jdk1.5-1.9新特性 -
wooddawn:
您好,最近在做个足球数据库系统,用到了betbrain的数据表 ...
javascript深入理解js闭包 -
lwpan:
很受启发 update也可以
mysql 的delete from 子查询限制 -
wuliaolll:
不错,总算找到原因了
mysql 的delete from 子查询限制
1. 传统的模板模式,就是基类为抽象类,然后将各种具有特性的行为,留给特定的子类去完成。
这种模式,只能在子类里面调用一次。但是有些情况,可能需要在子类里面多次调用模板方 法,这种情况下就需要用到第二种方法。
2. 回调。需要写一个回调接口,然后将要实现的具体方法,通过参数的模式,传入进具体的方法
比如:
具体调用的方法:
这种模式,只能在子类里面调用一次。但是有些情况,可能需要在子类里面多次调用模板方 法,这种情况下就需要用到第二种方法。
2. 回调。需要写一个回调接口,然后将要实现的具体方法,通过参数的模式,传入进具体的方法
比如:
public String getQueryResultTemplate(String startTime, String endTime, String checkType, Map<String, Object> byType, QueryTotalResultCallback callbackTotal, QueryResultCallback callbackp, QueryResultCallback callbackA) { List<String> pList = (List<String>) byType .get(CommonFixed.p_LIST); List<String> AList = (List<String>) byType .get(CommonFixed.A_LIST); List<String> calTypeList = (List<String>) byType .get(CommonFixed.CAL_TYPE_LIST); Map<String, Integer> totalMap = new HashMap<String, Integer>(); Map<String, Map<String, Integer>> pMap = new HashMap<String, Map<String, Integer>>(); Map<String, Map<String, Integer>> AMap = new HashMap<String, Map<String, Integer>>(); // calculate the total if (calTypeList.contains(CommonFixed.CAL_TOTAL)) { totalMap = callbackTotal.callTheTotalDao(); } // calculate the p if (calTypeList.contains(CommonFixed.CAL_p)) { pMap = callbackp.callTheDao(); } // calculate the A if (calTypeList.contains(CommonFixed.CAL_A)) { AMap = callbackA.callTheDao(); } // parse the result to the expected json string return CommonUtils.parseResultToJson(startTime, endTime, totalMap, pMap, AMap, pList, AList); }
具体调用的方法:
public String getMMNumber(final String startTime, final String endTime, final String checkType, final Map<String, Object> byType) { final List<String> pList = (List<String>) byType .get(CommonFixed.p_LIST); final List<String> aList = (List<String>) byType .get(CommonFixed.a_LIST); return getQueryResultTemplate(startTime, endTime, checkType, byType, new QueryTotalResultCallback() { public Map<String, Integer> callTheTotalDao() { // calculate the total return buildCheckDao.calToalCodeLine(startTime, endTime, checkType, pList, aList); } }, new QueryResultCallback() { public Map<String, Map<String, Integer>> callTheDao() { // calculate the p return buildCheckDao.calpCodeLine(startTime, endTime, checkType, pList); } }, new QueryResultCallback() { public Map<String, Map<String, Integer>> callTheDao() { // calculate the a return buildCheckDao.calaCodeLine(startTime, endTime, checkType, aList); } }); }
发表评论
-
将json格式的字符数组转为List对象
2015-08-10 15:18 898使用的是json-lib.jar包 将json格式的字符数组 ... -
用httpPost对JSON发送和接收的例子
2015-08-10 11:16 1096HTTPPost发送JSON: private static ... -
zookeeper适用场景:zookeeper解决了哪些问题
2015-07-31 18:01 752问题导读: 1.master挂机 ... -
java泛型
2015-07-29 10:48 762什么是泛型? 泛型(Ge ... -
Java线程Dump分析工具--jstack
2015-06-23 11:09 710jstack用于打印出给定的java进程ID或core fil ... -
什么是spark?
2015-04-10 09:37 485关于Spark: Spark是UC Berkeley AM ... -
dubbo 教程
2015-04-09 19:21 771先给出阿里巴巴dubbo的 ... -
jre/bin目录下面工具说明
2015-03-20 16:45 634jre/bin目录下面工具说明 ... -
JVM系列三:JVM参数设置、分析
2015-01-30 11:18 692不管是YGC还 ... -
jstat使用
2015-01-27 11:11 674jstat 1. jstat -gc pid ... -
查看java堆栈情况(cpu占用过高)
2015-01-27 11:10 7361. 确定占用cpu高的线程id: 方法一: 直接使用 ps ... -
慎用ArrayList的contains方法,使用HashSet的contains方法代替
2015-01-20 14:14 1141在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始 ... -
Java虚拟机工作原理详解
2015-01-16 10:00 716一、类加载器首先来 ... -
jdk1.5-1.9新特性
2014-11-11 10:22 83091.51.自动装箱与拆箱:2.枚举(常用来设计单例模式 ... -
java动态代理(JDK和cglib)
2014-09-24 15:51 470JAVA的动态代理 代理模式 代理模式是常用的java设计 ... -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
2014-09-24 15:45 690class文件简介及加载 Java编译器编译 ... -
怎么用github下载资源
2014-09-24 11:18 4501、下载github:到http://windows. ... -
maven项目时jar包没有到lib目录下
2014-09-01 20:05 2549在建项目时路径都设置好了,为什么在eclipse中运行mav ... -
使用并行计算大幅提升递归算法效率
2014-08-27 15:04 603前言: 无论什么样的 ... -
JAVA 实现FTP
2014-08-22 14:41 701一个JAVA 实现FTP功能的代码,包括了服务器的设置模块, ...
相关推荐
1. **抽象类(Abstract Class)**:这是模板模式的核心,它定义了模板方法以及一些具体方法。模板方法是一个具体方法,通常为final类型,以防止被子类重写。它定义了算法的主要结构,而将一些步骤留给了子类来实现。...
例如,我们有一个`TestTemplatePattern`文件,这可能是一个具体的实现模板方法模式的Java类。在这个类中,可能会包含以下关键元素: 1. **抽象类(Abstract Class)**: 定义了模板方法和一些基本操作。模板方法通常...
在模板方法模式中,通常有一个抽象基类,它包含了主要的算法流程,这个流程被划分为几个基本操作,这些操作由具体实现类(即抽象基类的子类)来完成。抽象基类通过声明这些操作为抽象方法或者钩子(hook)方法来强制...
在Java设计模式之模板模式中,我们将深入探讨这种模式的原理、应用场景以及如何在实际编码中实现。 模板模式的核心在于抽象类,这个抽象类定义了一个操作中的算法骨架,而将一些具体步骤的实现延迟到其子类中。这样...
- 在抽象类中实现模板方法,调用抽象方法和钩子方法。 - 子类继承抽象类,实现抽象方法和可选的钩子方法。 - 在子类中可以通过覆盖钩子方法来改变算法的行为。 总的来说,模板方法模式提供了一种代码复用的有效手段...
在Java中,模板模式通常通过抽象类来实现,抽象类定义了操作的主要步骤,而具体的实现由其子类完成。 **主要步骤**: 1. **定义抽象模板类**:包含一个或多个抽象方法,这些方法在模板方法中被调用。 2. **具体实现...
在Java中,模板模式通常使用抽象类来定义模板方法,这个方法由一系列基本操作组成,这些操作在模板类中可能是抽象的或已经实现了的。子类通过重写这些抽象方法,为算法的具体步骤提供实现。这种设计模式遵循“开闭...
在Java中,模板方法模式通常通过抽象类来实现。抽象类定义了基本操作,这些操作由具体子类实现。模板方法通常是一个抽象方法,它调用这些基本操作,形成一个完整的算法流程。这种方式有助于减少代码重复,保持代码的...
本文将详细介绍如何在Java中实现模板方法模式,包括其概念、结构、优点、缺点以及实际应用示例。 模板方法模式是一种强大的设计模式,它通过定义算法的骨架和允许子类扩展特定步骤,提供了算法的灵活性和可复用性。...
Java设计模式之模板方法模式Java认证考试 Java设计模式之模板方法模式是Java认证考试中的一种重要的设计模式,它通过使用继承关系来定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个...
总结来说,使用Java和Apache POI生成PPT文件涉及理解PPT文件结构、掌握POI API、创建模板、数据绑定和错误处理等多个步骤。在给定的代码中,可能有两个不同的迭代实现,分别对应两种不同的处理方式或优化策略。通过...
Java模板模式是一种设计模式,属于行为模式类别,它在软件工程中扮演着重要的角色,尤其在构建可扩展和可复用的代码时。模板模式通过定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个...
具体的子类继承抽象模板类,并实现其中的抽象方法,完成自己的特定操作步骤。模板方法模式能够提供代码的复用性和扩展性,将通用的操作步骤封装在抽象模板类中,而具体的实现可以由子类灵活扩展和改变。
在Java中,模板方法模式通常通过抽象类来实现,这个抽象类包含了主要的操作流程,也就是模板方法。模板方法一般声明为final,防止子类覆盖其具体实现。同时,抽象类中定义了一些抽象方法或者钩子方法(hook method)...
模板方法模式是一种行为设计模式,它允许在定义行为框架的同时,延迟部分具体步骤到子类中实现。这种模式主要用于在父类中定义算法的骨架,而将一些步骤的实现细节留给子类去完成,从而使得不同的子类可以重用相同的...
这个模式的关键在于抽象类中定义了一个模板方法,该方法由一系列基本操作(抽象方法和具体方法)组成,其中抽象方法由子类实现,具体方法在抽象类中已经实现或者可以由子类覆盖。 **模板方法模式的特点:** 1. **...
定义模板方法和一些基本的操作步骤,其中模板方法通过调用其他具体方法组合完成操作。
在Java中,可以通过私有构造函数、静态私有变量和公共静态方法来实现单例模式。 3. 工厂模式 工厂模式是另一种常用的创建型模式,它将对象的创建与使用进行了解耦。根据不同的情况,可以实现简单工厂模式、工厂方法...
在给定的PPT内容中提到了一个简化的Java代码示例,用于展示模板方法模式的实现。代码如下所示: ```java public abstract class Beverage { final void prepareBeverage() { boilWater(); brew(); pourInCup();...
而游戏的战斗流程则可以用模板模式来定义,每个战斗阶段(如攻击、防御)的具体行为由子类实现。 此外,这两种模式也可以和其他模式一起使用,如工厂模式可以用于创建策略对象,装饰器模式可以用来动态地增加或修改...