模版方法模式 模仿Spring封装Hibernate 的try catch

本文介绍了模版方法设计模式的概念及应用,通过一个模仿Spring框架封装Hibernate操作的示例,展示了如何利用模版方法模式来定义操作骨架并延迟具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Template Method Pattern(模版方法模式)定义:定义一个操作中方法的骨架,以将一些步骤延缓到子类中实现,模版方法让子类重新定义一个方法的某些步骤而无须改变方法的结构。

其中类与对象的关系为:

     AbstractClass:抽象类

          定义一个抽象原始的操作,其子类可以重定义他的实现

    ConcreteClass:具体子类

          实现原始的操作以完成子类特定方法的步骤

下面就是一个简单的例子(模仿Spring封装Hibernate 的try catch):

AbstractClass:抽象类

import org.hibernate.Session;


public interface MyHibernateCallback {
	public void doInHibernate(Session s);
}

 

ConcreteClass:具体子类

import org.hibernate.Session;

/**
 * 这是一个模版,模仿Spring封装Hibernate 的try catch
 * @author Administrator
 *
 */
public class MyHibernateTemplate {
	
	//传一个接口
	public void executeWithNativeSession(MyHibernateCallback callback){
		Session s = null;
		try{
			s = getSession();
			s.beginTransaction();
			
			//执行接口的方法,这样那个类要是实现了这个接口就得实现这方法就相当把这方法插到了此处
			callback.doInHibernate(s);
			
			s.getTransaction().commit();
			
		}catch(Exception e){
			s.beginTransaction().rollback();
		}finally{
			
		}
		
	}

	private Session getSession() {
		return null;
	}
	
	//使用此模版
	public void save(final Object o){
		new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
			@Override
			public void doInHibernate(Session s) {
				s.save(o);
			}
		});
	}
	
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值