一、模板类
/**
* 玩游戏模式模版
* @author DUCHONG
* @since 2019-09-26 17:38
**/
public abstract class GameStepTemplate {
/**
* 共有的方法,不需要子类去实现
*/
protected void registQQ(){
System.out.println("注册QQ号成功");
}
/**
* 初始化游戏
*/
abstract void install();
/**
* 开始游戏
*/
abstract void startPlay();
/**
* 结束游戏
*/
abstract void gameOver();
/**
* 模板方法,子类各自去实现
*/
protected final void play(){
this.registQQ();
this.install();
this.startPlay();
this.gameOver();
}
}
二、LOL
/**
* lol游戏
*
* @author DUCHONG
* @since 2019-09-26 17:38
**/
public class LOL extends GameStepTemplate {
@Override
void install() {
System.out.println("安装LOL完毕");
}
@Override
void startPlay() {
System.out.println("开始玩5V5排位");
}
@Override
void gameOver() {
System.out.println("对面Penta kill GG 不玩了");
}
}
三、CF
/**
* 穿越火线游戏
*
* @author DUCHONG
* @since 2019-09-26 17:41
**/
public class CF extends GameStepTemplate {
@Override
void install() {
System.out.println("安装CF完毕");
}
@Override
void startPlay() {
System.out.println("开始玩CF,运输船模式");
}
@Override
void gameOver() {
System.out.println("一出门就被爆头,GG不玩了");
}
}
四、Client
/**
* 调用端
*
* @author DUCHONG
* @since 2019-09-26 17:43
**/
public class Client {
public static void main(String[] args) {
GameStepTemplate game;
game=new LOL();
game.play();
System.out.println("---LOL太难了,整个小号去玩CF---");
game=new CF();
game.play();
}
}
五、结果