20190124——觉今是而昨非 Java模板模式
在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。它的子类可以根据需要重写方法实现,但调用的方式与抽象类定义的方式相同。此模式属于行为模式类别
实现实例
在这个实现实例中,将创建一个Game抽象类,它定义了一个模板方法设置为final的操作,因此它不能被覆盖。Cricket和Football是扩展Game并覆盖它的方法具体类。
TemplatePatternDemo是一个演示类,将使用Game演示模板
第一步
package 模板模式;
public abstract class Game {
abstract void initialize();
abstract void startPaly();
abstract void endPlay();
public final void play(){
initialize();
startPaly();
endPlay();
}
}
第二步
package 模板模式;
public class Circket extends Game{
@Override
void endPlay() {
System.out.println("Circket Game Finished");
}
@Override
void initialize() {
System.out.println("Cricket Game Initialize! Start playing");
}
@Override
void startPaly() {
System.out.println("Cricket Game Started. Enjoy the game!");
}
}
package 模板模式;
public class Football extends Game {
@Override
void startPaly() {
System.out.println("Football Game Started");
}
@Override
void initialize() {
System.out.println("Football initialize");
}
@Override
void endPlay() {
System.out.println("Football endPlay");
}
}
第三步
package 模板模式;
public class TemplatePatternDemo {
public static void main(String[] args) {
Game game =new Circket();
game.play();
System.out.println();
game =new Football();
game.play();
}
}