什么是模板模式?
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
什么时候使用模板模式?
1、有多个子类共有的方法,且逻辑相同。 2、重要的、复杂的方法,可以考虑作为模板方法。
使用场景?
第一能想到的便是hibernate的模板类,我们扔给模板类的一个对象,对象直接保存数据库,事物、session等等操作被封装在内部。
如何实现?
模板类模式比较简单,关键是模板类的方法中加final ,子类不可修改。
public abstract class Game {
abstract void initGame();
abstract void startGame();
abstract void endGame();
protected final void play(){
System.out.println("--------pay begin------------");
initGame();
startGame();
endGame();
System.out.println("--------pay end------------");
}
}
子类继承这个类,重写
abstract void initGame();
abstract void startGame();
abstract void endGame();
三个方法即可,调用时候直接调用play方法。