设计模式快速学习(六)模板模式

举个例子:咱们写HTML的时候,先写head而后写body,这样完成了一个空HTML页面的架子,咱们的这一系列行为就是一个模板。模板模式中,首先会定义一个抽象类来声明这个事件模板,子类实现并被调用。也是很简单的一个设计模式。java

JDBC就是用到了模板模式:设计模式

Game.class

抽象类。定义模板。bash

public abstract class Game {
    abstract void init();
    abstract void start();
    abstract void end();

    /**
     * 方法必须是final ,固定的模板不容许改变
     */
    public final void play(){
        init();
        start();
        end();
    }
}
复制代码

play()就是我定义的模板,子类继承后必须实现该具体功能。ide

LoL.java
public class LoL extends Game{
    @Override
    void init() {
        System.out.println("LOL initialize ....");
    }

    @Override
    void start() {
        System.out.println("LOL starting....");
    }

    @Override
    void end() {
        System.out.println("LOL ending...");
    }
}
复制代码
Dota.java
public class Dota extends Game{
    @Override
    void init() {
        System.out.println("Dota initialize ....");
    }

    @Override
    void start() {
        System.out.println("Dota starting....");
    }

    @Override
    void end() {
        System.out.println("Dota ending...");
    }
}
复制代码
Main.java
public class Main {
    public static void main(String[] args) {
        Game game= new LoL();
        game.play();

        game = new Dota();
        game.play();

    }
}
复制代码

控制台打印:spa

LOL initialize ....
LOL  starting....
LOL  ending...
Dota  initialize ....
Dota  starting....
Dota  ending...
复制代码
相关文章
相关标签/搜索