文档章节

java 设计模式 模板方法模式

Lbj虞
 Lbj虞
发布于 2017/03/17 08:01
字数 327
阅读 9
收藏 0

模板方法模式:定义一个算法框架,将具体实现延伸到具体的子类中,重而可以在不改变算法框架的基础上,重定义改算法。 通俗些就是我们在子类中实现了一些不变和可变的方法,这些不变和可变的方法会在子类中重复出现,我们就可以把这些不可变的方法,迁移到单一的类里面,形成一个模板类,提高代码的重复使用,让子类摆脱重复不可变方法的纠缠

很多dao层框架就用到了模板方法模式,例如spring 的jdbcTemplate

public int update(String namedsql, List<Object> paramBean) {
		return this.jdbcTemplate.update(namedsql, paramBean.toArray());
	}


	public int update(String namedsql) {
		return this.jdbcTemplate.update(namedsql);
	}

	public int commonUpdate(String namedsql, List<Object> paramValue) {
		return this.jdbcTemplate.update(namedsql, paramValue);
	}


	public T getJavaBean(String sql, Class<T> retType) {
		try {
			RowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(retType);
			return this.jdbcTemplate.queryForObject(sql, rowMapper);
		} catch (IncorrectResultSizeDataAccessException e) {
			LOG.error(e, e.fillInStackTrace());
			e.printStackTrace();
			return null;
		}
	}


	public List<T> getList(String namedSql, List<Object> paramValue, Class<T> retType) {
		RowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(retType);
		return this.jdbcTemplate.query(namedSql, rowMapper, paramValue.toArray());
	}


	@SuppressWarnings({ "rawtypes", "unchecked" })
	public List getListObject(String sql, List<Object> paramValue, Class retType) {
		return this.jdbcTemplate.queryForList(sql, retType, paramValue.toArray());
	}


jdbcTemplate 模板类里面定义好了增删改 查的一系列的方法,到自己封装的Dao工具类具体实现这些方法

© 著作权归作者所有

上一篇: zookeeper简介
下一篇: java 注解
Lbj虞
粉丝 5
博文 30
码字总数 20298
作品 0
南京
程序员
私信 提问
设计模式15——Template Method设计模式

Template Method模板方法设计模式定义一个操作中算法的骨架,将具体步骤的执行延迟到子类中实现。Java中的抽象类就是使用了模板方法设计模式。模板方法设计模式结构如下: 以文档处理为例,T...

小米米儿小
2014/01/24
0
0
设计模式 2014-12-19

book: 阎宏《JAVA与模式》 架构设计栏目 http://blog.csdn.net/enterprise/column.html 概要: http://bbs.csdn.net/forums/Embeddeddriver 23种设计模式分别是: 1.单例模式 2.工厂方法模式...

jayronwang
2014/12/19
0
0
Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]: 大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样。但是大多数的Java代码都不是由开发J...

原创小博客
2018/07/17
0
0
Java语言编程学习之Lambda表达式设计和架构的原则

大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样。但是大多数的Java代码都不是由开发JDK的程序猿写的,而是像我们这样的普通程序猿。 很多人都...

JAVA高级架构开发
2018/08/19
0
0
java 23种设计模式 深入理解

以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究) 创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html ...

wc_飞豆
2018/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

两数的最大公约数

hello,复习一下数学知识! 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 因为之前做一个小功能,需要先计算一下数组的最大公约数,所以我就想记录一下...

woshixin
今天
3
0
学习Node.js的电子书大全

在这里,与大家分享一批很有用的 Node.js 的电子书资源。Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写...

jay603
今天
66
0
《伟大的博弈》读后感作文4100字

《伟大的博弈》读后感作文4100字: 五一小长假,作为工厂员工,没能跟上大家放假的步伐,窝家里两天没出门,逼着自己看完《伟大的博弈》,感触颇多。似乎不能消化,先记录第一遍作为幼稚的见...

原创小博客
昨天
5
0
单点登录-基于Redis+MySQL实现单点登录(SSO)

1. 为什么要用单独登录? 主要便于公司内部多系统统一认证授权管理,一次登录可访问多个跨域系统,也同时更加方便统一管理用户登录(员工离职需要拿掉登录权限、统计所有用户对系统的登录请求...

秋日芒草
昨天
2
0
827. Making A Large Island

思想: 将所有连通的 1 分成一个组,分配编号,然后使用BFS统计1的个数,得到这个组的面积。 遍历格子里所有为 0 的元素,检查四个方向的1所在的组并加上这个组面积。于是得到当前元素为 0 ...

reter
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部