2018年5月

模板模式其实我们经常用,但是因为代码层面看起来很简单,我们不知道这是模板模式(是的,没读设计模式之前,我不知道-_-!)。

模板方法模式的定义:

定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义。

举个例子,笔记本蓝天模具场是个挺厉害的OEM厂。很多具体牌子的厂商会去买他的模具(自研开模比较贵),例如神舟,炫龙,外星人等等。但这些牌子有响当当的,也有传说中的小米都干不过的(神船)。所以他们需要在具体的笔记本配置上增删一些东西,增加自己的品牌和利润等等。蓝天就相当于模板,是抽象的;笔记本壳子,笔记本键盘,主板配置是各大厂商自己去配置的,是具体的笔记本了。

图例如下:
请输入图片描述

其中只是简单的运用了继承机制,但却也十分广泛运用。所以引申出来一个抽象模板。
其中分为两种方法:模板方法(一般final修饰,防止篡改) 和 基本方法(子类实现)。

用代码展现的话如下

/**
 * OEM工厂 这里工厂不是工厂模式的工厂只是厂商的意思,这里是OEM提供的模板
 */
public abstract class OEMFactory {
    protected abstract void addCPU();

    protected abstract void addKeyBoard();

    protected abstract void addShell();

    protected void makeLaplop(){
        this.addCPU();
        this.addKeyBoard();
        this.addShell();
    }


}