在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。参考菜鸟教程
接口类定义执行模板
/**
* <p>
*抽象模板角色
* </p>
*
* @since 2022/3/22 13:10
*/
public abstract class Game {
abstract void initialize();
abstract void startPlay();
abstract void endPlay();
//模板
public final void play() {
initialize();
startPlay();
endPlay();
}
}
子类实现方法
/**
* <p>
* 具体模板角色
* </p>
*
* @since 2022/3/22 13:12
*/
public class Football extends Game {
@Override
void initialize() {
System.out.println("football game finished");
}
@Override
void startPlay() {
System.out.println("football game start");
}
@Override
void endPlay() {
System.out.println("football game end");
}
}
/** * <p> *具体模板角色 * </p> * * @since 2022/3/22 13:12 */ public class Cricket extends Game { @Override void initialize() { System.out.println("Cricket game finished"); } @Override void startPlay() { System.out.println("Cricket game start"); } @Override void endPlay() { System.out.println("Cricket game end"); } }
测试代码
Game game=new Football();
game.play();