模板模式
内容参考 w3cschool
分类:行为型设计模式
应用:框架的设计,基础一样,具体内容可以自定义。
目录
UML类图
创建游戏的抽象类
Game
public abstract class Game {
/**
* 初始化
*/
abstract void initialize();
/**
* 开始游戏
*/
abstract void startPlay();
/**
* 结束游戏
*/
abstract void endPlay();
public final void play(){
initialize();
startPlay();
endPlay();
}
}
创建游戏的实体类
ChessGame
public class ChessGame extends Game{
@Override
void initialize() {
System.out.println("[Initialize] Chess-Game");
}
@Override
void startPlay() {
System.out.println("[Start] Chess-Game");
}
@Override
void endPlay() {
System.out.println("[End] Chess-Game");
}
}
FootballGame
public class FootballGame extends Game{
@Override
void initialize() {
System.out.println("[Initialize] Football-Game");
}
@Override
void startPlay() {
System.out.println("[Start] Football-Game");
}
@Override
void endPlay() {
System.out.println("[End] Football-Game");
}
}
运行测试
public class ExecuteMain {
public static void main(String[] args) {
Game game = new ChessGame();
game.play();
System.out.println(game.hashCode()+"\n");
game = new FootballGame();
game.play();
System.out.println(game.hashCode());
}
}
[Initialize] Chess-Game
[Start] Chess-Game
[End] Chess-Game
460141958
[Initialize] Football-Game
[Start] Football-Game
[End] Football-Game
1163157884
Process finished with exit code 0