当前位置:首页 > 开发 > 编程语言 > 正则表达式 > 正文

Template Method Pattern

发表于: 2013-05-09   作者:chinrui   来源:转载   浏览次数:
摘要: Template Method Pattern 1、模版介绍 我们在使用JDBC的时候时常会遇到这种的问题,那就是很多操作代码是重复的,每次都写一遍又比较麻烦,那我们怎样去处理呢?可以使用模版模式来进行封装。(当然还有很多其它的方法,此处只是为了讲解模版模式,所以不对其它方式进行说明,例如:你可以封装一个专门对数据库进行操作的DB类) 2、模版类 package com.hp
Template Method Pattern

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;
}

Template Method Pattern

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。该模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改
一、模板方法(Template Method)模式 准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式
一、 模板方法(Template Method)模式 准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式
Template Method Pattern 作者:崔涛涛(07770225)   今天我要在这里介绍的是C#设计模式中的模版
啥是模板方法模式?好像很厉害的样子。 现有两种车,悍马H1和悍马H2,对它们进行测试,需要开动,停
概述: 我们最近在开发一个支持多种压缩类型文件的解压缩且制作成pdf的一个应用。对我们的架构来说
一.TemplateMethod Pattern 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。子类可以不改
1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并
1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号