前言
假如开一把lol,必须要做哪些事呢?可以简化位这三个步骤。选择英雄,开始游戏,投降。这三个步骤必须按照顺序执行。映射到代码中可以想到socket信息传输,建立连接,传输数据,关闭连接。
[这就是模板模式了大概的样子,在模板模式中,一个抽象类公开定义了执行它的方法的方式模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。]
[比如玩一把lol,选择什么英雄都可以,开始游戏后,每个人也有自己的发育路线,最后是15分钟投降,还是20分钟投降,每一局也都不一定(赢了暂时不算)不管谁来玩, 都要遵循这个路线。]
一、lol案例
通过玩一盘游戏来初步了解下模板模式。
代码如下(游戏步骤):
public interface PlaylolGame {
//选择英雄
void selectHero();
//开始游戏
void startGame();
//游戏结束
void GameOver();
}
代码如下(玩游戏模板):通过play()方法来固定玩游戏的顺序。通过传入接口来让不同的玩家来实现。
public class PlayGameTemplate {
private PlaylolGame playlolGame;
public PlayGameTemplate(PlaylolGame playlolGame) {
this.playlolGame = playlolGame;
}
public void play(){
playlolGame.selectHero();
playlolGame.startGame();
playlolGame.GameOver();
}
}
代码如下(德玛玩家的玩法):
public class PlayGailun implements PlaylolGame {
@Override
public void selectHero() {
System.out.println(