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

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

JDBC就是用到了模板模式:

Game.class

抽象类。定义模板。

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

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

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

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();

    }
}

控制台打印:

LOL initialize ....
LOL  starting....
LOL  ending...
Dota  initialize ....
Dota  starting....
Dota  ending...
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤独杂货铺阅读 1,550评论 0 3
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    RamboLI阅读 787评论 0 1
  • 下面总结设计模式中的行为型模式: 1.责任链模式 顾名思义,责任链模式(Chain of Responsibili...
    Steven1997阅读 3,551评论 0 1
  • 由于种种原因,简书等第三方平台博客不再保证能够同步更新,欢迎移步 GitHub:https://github.co...
    萌面大道阅读 9,464评论 3 7
  • 序一直都爱吃甜,甜到微微的涩。一直都想写作,写到天昏地暗。一直追逐自由,飞到天涯海角。 01 孤独的牧羊人在广廖的...
    wanna_dance阅读 219评论 2 1