标签:final extend 防止 因此 bst 不同 void func ack
地基
,铺线
,房子户型
都是一样的,由开发商决定,但是在交房之后,室内的装修风格
和场景布置
却是由业主决定,在这个场景中,开发商其实就是一个抽象类,地基,铺线,房子户型都是可以复用的,但是装修却是不可复用的,必须由业主决定,此时的每一个业主的房子就是一个实现的子类。final
关键词。final
修饰。public abstract class Game {
//抽象方法
abstract void initialize();
abstract void startPlay();
abstract void endPlay();
//模板方法
public final void play(){
//初始化游戏
initialize();
//开始游戏
startPlay();
//结束游戏
endPlay();
}
}
public class Football extends Game {
@Override
void endPlay() {
System.out.println("足球游戏结束......");
}
@Override
void initialize() {
System.out.println("足球游戏初始化中......");
}
@Override
void startPlay() {
System.out.println("足球游侠开始了......");
}
}
public class TemplatePatternDemo {
public static void main(String[] args) {
//创建足球游戏实例
Game game = new Football();
//开始游戏
game.play();
}
}
足球游戏初始化中......
足球游侠开始了......
足球游戏结束......
AbstractPlatformTransactionManager
是Spring中的模板抽象类
,来看看它的继承关系图: PlatformTransactionManager
接口,重载了接口中的方法。//提交事务
public final void commit()
//获取TransactionStatus
public final TransactionStatus getTransaction()
//提交事务
protected abstract void doCommit(DefaultTransactionStatus status);
//回滚事务
protected abstract void doRollback(DefaultTransactionStatus status);
//开始事务
protected abstract void doBegin(Object transaction, TransactionDefinition definition)
//获取当前的事务对象
protected abstract Object doGetTransaction()
DataSourceTransactionManager
、JtaTransactionManager
、RabbitTransactionManager
。具体承担什么样的角色和责任不是本节的重点,不再细说。JDBCTemplate
,AbstractPlatformTransactionManager
,这些实现都用到了模板模式。标签:final extend 防止 因此 bst 不同 void func ack
原文地址:https://www.cnblogs.com/Chenjiabing/p/12637122.html