模板方法是定义一个算法骨架,将特定步骤交给子类处理,这样子类就可以根据自己的需求,重新定义特定步骤。
public abstract class GameTemplate {
public abstract void init();
public abstract void start();
public void play(){
init();
start();
}
}
public class Cf extends GameTemplate {
@Override
public void init() {
System.out.println("初始化cf环境");
}
@Override
public void start() {
System.out.println("启动cf");
}
}
public class Lol extends GameTemplate {
@Override
public void init() {
System.out.println("初始化lol环境");
}
@Override
public void start() {
System.out.println("启动lol");
}
}
public class TestGameTemplate {
public static void main(String[] args){
GameTemplate cf = new Cf();
GameTemplate lol = new Lol();
cf.play();
lol.play();
}
}
CF和LOL都继承了游戏模板,但是CF和LOL可以自己定义具体步骤的实现。
使用模板模式,可以将共有的行为提取到抽象类中,不同的行为交给子类来自己实现。