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

栏目: 后端 · 发布时间: 7年前

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

举个例子:我们写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...
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

技术领导之路(中英文对照)

技术领导之路(中英文对照)

Gerald M.Weinberg / 余晟 / 电子工业出版社 / 2009-12 / 69.00元

《技术领导之路:全面解决问题的途径(中英文对照)》内容简介:搞定技术问题并不简单,但与人打交到也并非易事。作为一个技术专家,你是否在走上管理岗位时遇到了各种不适“症状”?《技术领导之路:解决问题的有机方法》一书将帮助你成为一个成功的解决问题的领导者。书中温伯格从一个反思者的角度阐述了要成为一个成功的解决问题的领导者必备的3个技能——MOI,即激励(Motivation)、组织(Organizati......一起来看看 《技术领导之路(中英文对照)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换