Template模式

我们在看spring中有部分说到持久层,其中有个类JdbcTemplate,它是利用Template模式。

Template模式就是说:在父类中定义一个操作算法或操作顺序,而将一些步骤的具体实现延迟到子类中。请看列子:

// TemplateTest.java

首先在父类SuperTemplate中定义两个方法:doInTransaction()和execute(),execute()方法用来执行事务,doInTransaction()是事务的具体操作,但是doInTransaction()是个抽象方法,并没有具体的行为,它把行为交给了它的子类SuperTemplate ,子类中重写这个方法,然后在测试类中调用SubTemplate.execute()方法就行了。

 

出此之外,还有一种回调形式是利用接口回调函数,例子:

// TemplateTest2.java

在这里申明一个接口,里面有个方法doSomething()。Template2 这个类中的execute()方法用来执行事务,其中有个参数:execute(TestTemplateCallBack callBack),参数类型为之前定义的接口对象,然后就可以利用这个对象来调用doSomething()方法。但是doSomething()方法具体的操作内容在哪呢?它在TemplateTest2的insert()方法里面,这里在TemplateTest2类中定义一个insert()方法,接着申明一个Template2对象t,当执行t.execute()方法的时候,这时我们写个匿名类来当传入参数,这匿名类就是之前的接口,在匿名类中重写doSomething()方法就可以实现具体操作了。

 

实际的列子可以参考spring源码中的JdbcTemplate类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值