简介
模板方法是行为型模式的一种,当我们要做一件事情时,我们知道其中的步骤,但还没有想好步骤的具体实现,此时我们就可以使用模板方法。在生活中也比较常见,比如一个主播要开直播时,那么他是播游戏还是唱歌还是讲故事呢,这些其都还没有想好,接下来就以这个为例进行Demo:
Demo示例
1.首先定义一个直播的抽象类:
public abstract class Live {
protected abstract void beforLive();
protected abstract void living();
protected abstract void afterLive();
public void live() {
beforLive();
living();
afterLive();
}
}
2.定义音乐和游戏的直播来继承Live,并且重写其protected的方法:
public class GameLive extends Live{
@Override
protected void beforLive() {
System.out.println("Choose game to play while living");
}
@Override
protected void living() {
System.out.println("I am playing game");
}
@Override
protected void afterLive() {
System.out.println("I am tired, need a rest.");
}
}
public class MusicLive extends Live {
@Override
protected void beforLive() {
System.out.println("Choose songs to sing while living");
}
@Override
protected void living() {
System.out.println("I am singing");
}
@Override
protected void afterLive() {
System.out.println("I love music live.");
}
}
3.客户端调用
public class Test {
public static void main(String[] args) {
Live gameLive = new GameLive();
gameLive.live();
/**
* Choose game to play while living
* I am playing game
* I am tired, need a rest.
*/
System.out.println("**************************");
Live musicLive = new MusicLive();
musicLive.live();
/**
* Choose songs to sing while living
* I am singing
* I love music live.
*/
}
}