设计模式-行为型-模板方法

138 阅读1分钟

简介

模板方法是行为型模式的一种,当我们要做一件事情时,我们知道其中的步骤,但还没有想好步骤的具体实现,此时我们就可以使用模板方法。在生活中也比较常见,比如一个主播要开直播时,那么他是播游戏还是唱歌还是讲故事呢,这些其都还没有想好,接下来就以这个为例进行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.
         */
    }
}