模板模式

简介: 模板设计模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中去。模板方法可以使子类在不改变算法结构的前提下,重新定义算法中的某些定义。比喻说明:模板模式就像是做煎饼果子,每做一个煎饼果子的步骤都一样:烙饼—>加调料(包括鸡蛋、火腿等)—>卷饼—>打包,除了加的调料不一样之外其余都一样,这时我们就可以定义一个煎饼果子类,制作步骤都封装起来,唯独将加调料的方法交给子类实现。

模板设计模式

定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中去。模板方法可以使子类在不改变算法结构的前提下,重新定义算法中的某些定义。

比喻说明:模板模式就像是做煎饼果子,每做一个煎饼果子的步骤都一样:烙饼—>加调料(包括鸡蛋、火腿等)—>卷饼—>打包,除了加的调料不一样之外其余都一样,这时我们就可以定义一个煎饼果子类,制作步骤都封装起来,唯独将加调料的方法交给子类实现。

案例代码说明

1,定义抽象父类——>煎饼果子类

public abstract class TortillaFlat {
    //制作煎饼果子方法
    public void makeTortillaFlat(){
    //        将步骤封装
        makeCake();
        addSeasoning();
        rollupCake();
        baleCake();
    }
    private void makeCake(){
        Log.e("模板模式","烙饼");
    }
    private void rollupCake(){
        Log.e("模板模式","卷饼");
    }
    private void baleCake(){
        Log.e("模板模式","打包");
    }
    protected abstract void addSeasoning();
}

2,定义子类——>加鸡蛋煎饼果类(这里也可以定义加培根或者烤肠的)

public class EggTortillaFlat extends TortillaFlat {
    @Override
    protected void addSeasoning() {
        Log.e("模板模式","加入鸡蛋");
    }
}

3,创建加鸡蛋对象实例执行制作煎饼果子方法

TortillaFlat eggTortillaFlat = new EggTortillaFlat();
eggTortillaFlat.makeTortillaFlat();

4,执行结果

img_419622c1b3a7c0177b5beee7eea14df4.png
执行结果

总结:模板其实就是一个方法类似于上面例子里的制作煎饼果子方法makeTortillaFlat(),它将算法定义成一组步骤,其中任何步骤都是可以被抽象然后由子类实现的,这样可以保证算法结构的稳定同时由子类提供部分实现。在java中的集合排序就是使用的模板模式,通过实现compareTo()方法来实现自定义的排序。

目录
相关文章
|
8月前
|
设计模式 算法 Java
工厂模式、模板模式和策略模式的混合使用
工厂模式又叫做工厂方法模式,是一种**创建型**设计模式,一般是在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
111 0
工厂模式、模板模式和策略模式的混合使用
|
4月前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式
|
7月前
|
设计模式 算法
行为型设计模式之模板模式
行为型设计模式之模板模式
|
8月前
|
设计模式 算法
模板模式
​ 如有错误或有补充,以及任何改进的意见,请留下您的高见 定义 模板模式是一种行为型设计模式,它在一个抽象类中公开定义了执行它的方法的方式/模板。子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。这种模式的核心思想是将一个算法的骨架定义在一个抽象类中,而将一些步骤延迟到子类中实现。 实现模板模式的步骤包括: 抽象出一个模板类,该类定义了执行算法的骨架。 抽象类中定义算法的骨架,骨架中的具体算法由子类实现。 子类按需重写方法实现,但调用将以抽象类中定义的方式进行。 使用final修饰模板方法,防止别人重写模板方法。 优点 提高了代码的可维护性和复用性。 减少了代码冗余,使算法的修
40 0
|
8月前
行为型 模板模式
行为型 模板模式
42 0
|
设计模式 算法 C++
设计模式之模板模式(C++)
设计模式之模板模式(C++)
|
设计模式 算法 Java
模板模式【Java设计模式】
模板模式【Java设计模式】
54 0
|
设计模式 算法 Java
详解模板模式
1.概述 模板模式是一种常用的设计模式,它定义了一个操作中的算法的骨架,将某些步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。 模板模式中有两个角色:
147 0
|
设计模式 算法 微服务
设计模式之模板模式
设计模式之模板模式
104 0
Zp
|
设计模式
【设计模式】系列之模板模式
【设计模式】系列之模板模式
Zp
59 0