模板模式
简介
模板模式,这个很好理解,在父类定义好一个实现的流程,具体实现交给自己的子类来扩展,父类只需要把子类共有的代码写下来,扩展的功能交给子类来编写。
优点
1、封装不变部分、扩展可变部分
2、提取公共代码,便于维护
3、行为由父类控制,子类实现
缺点
每一种实现都需要一个子类来实现,导致类的增加,使系统更加庞大
UML
实现
public abstract class PlayGame {
abstract void initGame();
abstract void startGame();
abstract void endGame();
public final void play(){
//初始化游戏
initGame();
//启动游戏
startGame();
//结束游戏
endGame();
}
}
public class LPL extends PlayGame {
@Override
void initGame() {
System.out.println("LPL game is init...");
}
@Override
void startGame() {
System.out.println("LPL game is start...");
}
@Override
void endGame() {
System.out.println("LPL game is over...");
}
}
public class Football extends PlayGame {
@Override
void initGame() {
System.out.println("Football game is init...");
}
@Override
void startGame() {
System.out.println("Football game is start...");
}
@Override
void endGame() {
System.out.println("Football game is over...");
}
}
public class Client {
public static void main(String[] args) {
PlayGame football = new Football();
football.play();
PlayGame lpl = new LPL();
lpl.play();
}
}