`
chinrui
  • 浏览: 98096 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Template Method Pattern

阅读更多
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;
}

分享到:
评论

相关推荐

    TemplateMethod Pattern.unitypackage

    TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。

    Discovering Template Method Pattern in Google Android framework

    模板方法模式(Template Method Pattern)在Google Android框架中的应用是一个重要的设计模式实例,它允许开发者定义一个算法骨架,而将一些步骤延迟到子类中。这个模式的关键在于它定义了一个操作中的算法步骤,并...

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    在这个例子中,`AbstractClass`定义了`templateMethod`模板方法,其中`step1()`是具体实现,而`step2()`和`step3()`作为抽象方法由`ConcreteClass1`和`ConcreteClass2`这两个具体类来实现。这样,不同的具体类可以...

    【原创】Open close principle sample, state pattern, template method pattern

    在软件设计领域,设计模式是解决常见问题的可重用解决方案。它们是经过验证的、在特定上下文中高效的设计决策,被广泛应用于构建可维护和可扩展的软件系统。本篇将深入探讨“开闭原则”(Open Close Principle,OCP...

    C#模板方法模式(Template Method Pattern)实例教程

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    C++设计模式课件3_Template Method_模板方法.pdf

    模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 #### 模式背景...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式... 模板方法模式(Template Method Pattern)  访问者模式(Visitor Pattern)

    C#设计模式-吕震宇

    设计模式(21)-Template Method Pattern 设计模式(20)-Visitor Pattern 设计模式(19)-Observer Pattern 设计模式(18)-Command Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(16)...

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    19种设计模式的C++实现且可正常运行

    主要实现了19种设计模式的示例,尚未实现剩余4中设计模式,分别是状态模式(StatePattern),策略模式(Strategy pattern),模板方法模式(Template method pattern),访问者模式(Visitor Pattern) 使用人群:希望对这...

    DesignPattern.rar

    5. **模板方法模式(Template Method Pattern)**:模板方法模式定义了一个操作中的算法骨架,允许子类在不改变结构的情况下重写算法的某些步骤。 6. **组合模式(Composite Pattern)**:组合模式将对象组织成树形结构...

    design-pattern-java.pdf

    算法的封装与切换——策略模式(四) 模板方法模式-Template Method Pattern 模板方法模式深度解析(一) 模板方法模式深度解析(二) 模板方法模式深度解析(三) 访问者模式-Visitor Pattern 操作复杂对象结构——...

    java设计模式详解,java design pattern

    1. 模板方法模式(Template Method Pattern):在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。 2. 中介者模式...

    软件架构23种设计模式

    例如代理模式(Proxy Pattern)、享元模式(Flyweight Pattern)、责任链模式(Chain of Responsibility Pattern)、命令模式(Command Pattern...模式(Template Method Pattern)和访问者模式(Visitor Pattern)...

    Object-Oriented Analysis and Design 第六章

    - Template Method pattern defines the skeleton of an algorithm in a method, deferring some steps to subclasses. - Visitor pattern allows adding new operations to existing class hierarchies without ...

Global site tag (gtag.js) - Google Analytics