设计模式(二十一)——模板模式(Template )

news2024/12/25 1:17:31

设计模式(二十一)——模板模式

理解

模板模式,我的理解是父类中有操作的流程已经确定,但是没有具体的实现,实现可以在子类中实现,但是流程已经确定,只要在父类中实现一次即可。

应用场景

学生吃午饭,排队选择不同的吃的和喝的,先选吃的再选喝的这个流程已经确定,但是选择什么还没有确定。

lunch方法已经确定了,但是eat和drink方法还没有确定,这两个方法留到子类来实现

public abstract class Student {
    public abstract void eat();
    public abstract void drink();

    public void lunch(){
        System.out.println("吃午饭");
        eat();
        drink();
    }
}

Tom的选择

public class Tom extends Student{
    @Override
    public void eat() {
        System.out.println("Tom 吃饭");
    }

    @Override
    public void drink() {
        System.out.println("Tom 喝水");
    }
}

Jrerry的选择

public class Jerry extends Student{
    @Override
    public void eat() {
        System.out.println("Jerry 吃面");
    }

    @Override
    public void drink() {
        System.out.println("Jerry 喝饮料");
    }
}
public static void main(String[] args) {
    Student tom = new Tom();
    Jerry jerry = new Jerry();
    tom.lunch();
    jerry.lunch();
}

输出结果:

在这里插入图片描述

也可以用匿名内部类

new Student() {
    @Override
    public void eat() {
        System.out.println("吃面包");
    }

    @Override
    public void drink() {
        System.out.println("喝汽水");
    }
}.lunch();

还有一个例子:高一,高二,高三,三个年级,每天要上8节课,但是课可能会不相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/692654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PC: 市场寒冬剖析

市场调研机构Canalys数据显示,今年一季度,中国市场整体PC出货量同比下降24%至890万台,已是连续第五个季度下跌。今年截至618结束,都没有一家主要的PC厂商愿意发战报。PC市场怎样走出寒冬?谈谈你的理解和看法。 PC 一、…

分布式软件架构——分布式事务TCC和SAGA

TCC事务 TCC 是另一种常见的分布式事务机制,它是“Try-Confirm-Cancel”三个单词的缩写,是由数据库专家 Pat Helland 在 2007 年撰写的论文《Life beyond Distributed Transactions: An Apostate’s Opinion》中提出。 前面介绍的可靠消息队列虽然能保…

【软件安装】Linux系统中安装Redis缓存数据库(Ubuntu系统)

这篇文章,主要介绍Linux系统中安装Redis缓存数据库(Ubuntu系统)。 目录 一、Linux安装Redis数据库 1.1、下载Redis安装包 1.2、解压Redis安装包 1.3、编译Redis源代码 1.4、安装Redis服务 1.5、启动Redis服务 一、Linux安装Redis数据库…

免费沉浸式Twitter翻译工具 用AI打破语言障碍

语言对于人类社交而言是至关重要的。它是连接不同文化、不同国家、不同民族之间的桥梁。然而,在全球化进程加速的今天,不同语言之间的交流障碍成为了一个限制人类沟通的因素。尤其是在互联网时代,我们需要跨越各种语言屏障才能获取信息和与他…

【Jetson Xavier NX 开发板深度学习环境和ROS配置流程】

【Jetson Xavier NX 开发板深度学习环境和ROS配置流程】 1.基本介绍2. 预先准备3. NX系统基本环境搭建3.1 安装 NVIDIA SDK管理器3.2 准备硬件3.3 NX刷机3.3.1 配置开发环境3.3.2 查看组件并接受许可3.3.3 开始安装 3.4 设置SSD启动3.4.1 设置您已安装的SSD3.4.2 将根源从eMMC复…

do-while(0)语句到底有什么用?

前言 在一个群里面看到一个人问,do-while(0)语句有什么用?do-while(0)这个程序最终结果不应该就是程序只跑一次,那么写和不写有什么区别呢? do-while(0)在复杂宏定义上的优点 为什么需要复杂宏 (1)在讲解d…

tinyxml2.cpp:(.text+0x71e8): undefined reference to `stdout

-target aarch64-linux-android21 > -target aarch64-linux-android24 问题解决 修改QT配置,默认为21改为24 ,因为stdout stdin stderr 在android23之后才实现 编译成功,问题解决

C语言——详解函数栈帧的创建和销毁

函数栈帧 前言:一、认识相关寄存器和汇编指令1.寄存器(寄存器是集成在cpu上的)2.汇编指令 二、函数栈帧创建和销毁的过程1.main函数的调用2.函数栈帧的创建3.函数栈帧的销毁 前言: 为了深入学习C语言,也为了方便理解&…

仅在python虚拟环境中安装CUDA、CUDNN、PaddlePaddle-gpu

0、前言 在配置深度学习环境时,若想使用GPU加速,就需要安装CUDA、CUDNN,然而在系统中安装的话,若不同框架需要的版本不同,就会比较麻烦。因此,一种比较方便的做法是:利用conda管理不同的python…

arcgis实现DEM镶嵌和去白点

目录 镶嵌去白点 镶嵌 arcgis中直接选择镶嵌就行,然后选择其中一幅进行输出就好 去白点 镶嵌好之后,就会出现白色的,好像没有数据,为nodata 解决办法:可以使用arcgis中的焦点统计,计算邻域进行插值&…

terser用于ES6的压缩JS工具

https://www.npmjs.com/package/terser uglify-es不再维护,uglify-js也不支持ES6。 terser是uglify-es的一个分支,主要保留了与uglify和uglify-js3. npm install terser -gterser [input files] [options] terser-webpack-plugin 使用terser-webpack-pl…

生成式 AI 将如何颠覆数据分析?

生成式 AI 对数据分析的颠覆式变革 想象这样一个场景,您能够像与人交谈一样和计算机进行交流。在这个场景中,您不需要学习复杂的技术,通过自然语言就能够整理数据、分析复杂的数据集、并生成报告。几年前,这可能还是科幻小说中的画…

手把手教你实现SpringBoot的监控!

任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的。 就目前而言,大部分微服务应用都是基…

【C#】并行编程实战:实现数据并行(1)

本教程对应学习工程:魔术师Dix / HandsOnParallelProgramming GitCode 到目前为止,我们已经掌握了并行编程、任务和任务并行的基础知识。本章将讨论并行编程的另一个重要方面,即数据并行。 任务并行可以为每个参与线程创建一个单独的…

SpringSecurity认证流程(超级详细)

1 .前言 最近开发项目的时候遇到了和SpringSecurity相关的一些问题,但是之前并没有去了解过SpringSecurity,导致改系统安全权限验证的时候就比较吃力了,目前项目开发大多都直接用脚手架直接开发,系统安全权限验证已经形成了&…

漏洞复现|和信创天云桌面系统存在任意文件上传目录遍历漏洞

一、 阅读须知 一切从降低已有潜在威胁出发,所有发布的技术文章仅供参考,未经授权请勿利用文章中的技术内容对任何计算机系统进行入侵操作,否则对他人或单位而造成的直接或间接后果和损失,均由使用者本人负责。 郑重声明&#x…

2019年全国硕士研究生入学统一考试管理类专业学位联考数学试题——纯题目版

2019 年 1 月份管综初数真题 一、问题求解(本大题共 5 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。 1、某车间计划 10 天完成一项任务&a…

网络变压器/网络滤波器 国产化替代一般需要签订哪一些相关文件

Hqst华强盛导读:网络变压器/网络滤波器 国产化替代一般需要签订哪一些相关文件 在国内推广和应用国产替代网络变压器/滤波器时,需要签定一系列的文件,以确保网络变压器/滤波器的质量和安全,同时遵守国家相关的法律法规和政策规定…

JS实现选择图片剪裁及保存

JS实现选择图片剪裁及保存 以下是一个简单的示例代码,实现了显示一个文件上传框和一个canvas元素。用户可以选择一张图片文件后,该图像将显示在canvas中,并且用户可以通过鼠标拖拽来选取需要剪裁的区域。单击“剪裁”按钮,程序会…

8.11 TCP链接管理与UDP协议

目录 TCP的链接管理 TCP包头 连接的建立——”三次握手” 连接的释放——“四次挥手” 保活计时器 UDP协议 计算机网络体系结构 UDP协议 UDP的主要特点 UDP是面向报文的 TCP的链接管理 TCP包头 连接的建立——”三次握手” TCP 建立连接的过程叫做握手。 采用三报文…