Template Method Pattern

[align=center][b]Template Method Pattern[/b][/align]
1、模版介绍
我们在使用JDBC的时候时常会遇到这种的问题,那就是很多操作代码是重复的,每次都写一遍又比较麻烦,那我们怎样去处理呢?可以使用模版模式来进行封装。(当然还有很多其它的方法,此处只是为了讲解模版模式,所以不对其它方式进行说明,例如:你可以封装一个专门对数据库进行操作的DB类)

2、模版类

package com.hpu.template;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import com.hpu.callback.Callback;

public class Template {

/**
* 此处为模版方法
* 只要传入一个自己需要实现功能的回调类
* 就能在你要实现功能的前后加上模版的内容
*/
public void doTemplate(Callback callback) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/template","root","***");
stmt = conn.createStatement();
//stmt.execute("insert into test values(null,'test'");
/*
* 整个doTemplate是一个模版
* 传入一个回调类(钩子类)
* 让回调类去实现具体所要做的操作
*/
callback.doInTemplate(stmt);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*
* 用于测试的方法
* 里面传入一个匿名的实现了Callback接口的类
*/
public static void main(String[] args) {
new Template().doTemplate(new Callback() {
@Override
public void doInTemplate(Statement stmt) throws SQLException {
stmt.execute("insert into test values(null , 'test')");
}
});
}

}


3、Callback接口
package com.hpu.callback;

import java.sql.SQLException;
import java.sql.Statement;

public interface Callback {
public void doInTemplate(Statement stmt) throws SQLException;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值