【设计模式】Java设计模式-模板模式

Java设计模式 – 模板模式

😄 不断学习才是王道
🔥 继续踏上学习之路,学之分享笔记
👊 总有一天我也能像各位大佬一样
🏆原创作品,更多关注我CSDN: 一个有梦有戏的人
👊准备将博客园、CSDN一起记录分享自己的学习心得!!!
🌝分享学习心得,欢迎指正,大家一起学习成长!

【设计模式】Java设计模式-模板模式

简介

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
———— 菜鸟联盟
UML图:

【设计模式】Java设计模式-模板模式

模板模式实例

本次实验采用不同种奶茶制作的例子,奶茶类作为抽象类,提供制作奶茶过程的方法,需要子类实现的方法作为抽象方法。在定义两种不同的奶茶。最后通过测试得出结论。
本次实验的类图:

【设计模式】Java设计模式-模板模式

①、定义抽象类(模板类)

除了公共方法,其他变化的方法都由子类实现。

package com.lyd.demo.template;
/**
 * @Author: lyd
 * @Description: 抽象类 - 奶茶
 * @Date: 2022-09-02
 */
public abstract class MilkTea {
    final public void make() { // 子类不需要重写
        pourTea();
        pourMilk();
        filterTea();
        addMaterials();
        stir();
        success();
    }
    public void pourTea() {
        System.out.println("倒入茶叶焖三分钟");
    }
    public void pourMilk() {
        System.out.println("倒入牛奶加热至小泡");
    }
    public void filterTea() {
        System.out.println("过滤茶叶");
    }
    public abstract void addMaterials(); // 添加东西,子类实现
    public void stir() {
        System.out.println("搅拌");
    }
    public abstract void success();
}

②、定义具体类

具体类,实现父类的抽象方法,这里只粘贴红豆奶茶类

package com.lyd.demo.subclass;

import com.lyd.demo.template.MilkTea;

/**
 * @Author: lyd
 * @Description: 红豆奶茶
 * @Date: 2022-09-02
 */
public class RedBeanMilkTea extends MilkTea {
    public void addMaterials() {
        System.out.println("添加红豆");
    }

    public void success() {
        System.out.println("红豆奶茶做好啦");
    }
}

③、测试

通过调用make方法就可以自动调用子类的特有方法实现。

package com.lyd.demo.test;

import com.lyd.demo.subclass.PearlMilkTea;
import com.lyd.demo.subclass.RedBeanMilkTea;
import com.lyd.demo.template.MilkTea;

/**
 * @Author: lyd
 * @Description: 测试
 * @Date: 2022-09-02
 */
public class TemplateTest {
    public static void main(String[] args) {
        MilkTea redBeanMilkTea = new RedBeanMilkTea();
        redBeanMilkTea.make();
        System.out.println("************************************************");
        MilkTea pearlMilkTea = new PearlMilkTea();
        pearlMilkTea.make();
    }
}

运行结果

【设计模式】Java设计模式-模板模式

👍创作不易,可能有些语言不是很通畅,如有错误请指正,感谢观看!记得一键三连哦!👍

今天内容比较简单,很容易理解,设计模式一路过来也到了模板模式,一切还是很顺利的,也加深了对java面向对象的理解。

Original: https://www.cnblogs.com/lyd-code/p/16709821.html
Author: 怒放吧德德
Title: 【设计模式】Java设计模式-模板模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574122/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球