美文网首页
模板模式

模板模式

作者: 别点了填写不了昵称 | 来源:发表于2020-03-25 14:31 被阅读0次

概述

模板模式是在框架和实际编程当中常用到的编程方法。
在书中看到模板模式的定义如下:定义一个操作中算法的骨架,而将一些步骤延迟到字类中,模板方法使得字类可以不改变算法的结构即可重定义该算法的某些特定步骤。
也就是说,我们可以把步骤什么的定义下来,不能改变,但是具体的没个步骤你想怎么操作怎么操作。


类图

模板模式的优点

  1. 具体细节步骤实现在定义的字类当中。字类定义详细处理算法是不会改变整体算法结构的。
  2. 代码复用的基本技术。在数据库设计中尤为重要。
  3. 存在一种反向的控制结构,通过调用一个父类来调用字类的操作,通过字类对父类进行扩展增加的新的行为,符合开闭原则。

不足

每一个不同的实现,都需要重新定义一个字类,会导致类的个数增加,增加系统的复杂度。

模板模式举例

这里借用了一个大家常用的例子,就是厨师做菜的例子。
注意:这里并没有接口,和策略模式还是有差别的。这里用的是抽象方法。

public class App
{
    public static void main(String[] args){
        DodishTemplate eggsWithTomato = new EggsWithTomato();
        eggsWithTomato.dodish();
        System.out.println("--------------------");
        DodishTemplate bouilli = new Bouilli();
        bouilli.dodish();
    }
}

public abstract class DodishTemplate{
    /*
    *
    *具体的过程
    */
    protected void dodish(){
        this.preparation();
        this.doing();
        this.carriedDishs();
    }

    public abstract void preparation();

    public abstract void doing();

    public abstract void carriedDishs();
}

public class EggsWithTomato extends DodishTemplate
{
    @Override
    public void preparation(){
        System.out.println("洗切西红柿,并打鸡蛋");
    }

    @Override
    public void doing(){
        System.out.println("鸡蛋倒入锅中,然后倒入西红柿一起翻炒。");
    }

    @Override
    public void carriedDishs(){
        System.out.println("将炒好的西红柿装入盘子里,给客人吃。");
    }
}

public class Bouilli extends DodishTemplate
{
    @Override
    public void preparation(){
        System.out.println("切土豆和肉");
    }

    @Override
    public void doing(){
        System.out.println("将切好的土豆和肉一起煸煮。");
    }

    @Override
    public void carriedDishs(){
        System.out.println("将做好的红烧肉放到碗里。");
    }
}

运行结果

相关文章

  • 11.8设计模式-模板模式-详解

    设计模式-模式模式 模板方法模式详解 模板方法模式在android中的实际运用 1.模板方法模式详解 2.模板方法...

  • 第5章 -行为型模式-模板方法模式

    一、模板方法模式的简介 二、模板方法模式的优点 三、模板方法模式的应用场景 四、模板方法模式的实例

  • 模板方法模式

    模板方法模式 模板方法模式的定义 模板方法模式(Template Method Pattern)是如此简单,以致让...

  • 设计模式系列-模板方法模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 模板方法模式 定义 模板方法模式在一个方法中定义了算法...

  • 设计模式(行为型)-- 模板模式

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型-Template

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型 模板模式(文末有项目连接)

    1:模板方式解决的问题(先了解) 2:模板模式的原理与实现 3:模板模式核心代码 4:模板模式复用例子(Input...

  • 模板模式,也是解耦算法的吗?

    模板模式,和算法有什么关系呢? 模板模式,在什么场景使用呢? 模板模式(Template Pattern),定义一...

  • 模板方法模式

    一、模板方法模式介绍 二、模板方法模式代码实例

  • 58 - 模板模式

    本文来学习另外一种行为型设计模式,模板模式。模板模式主要是用来解决复用和扩展两个问题 模板模式的原理与实现 模板模...

网友评论

      本文标题:模板模式

      本文链接:https://www.haomeiwen.com/subject/qrrtuhtx.html