模板方法及设计模式——Java笔记
模板方法及设计模式
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。
解决的问题:
-
当功能内部一部分实现是确定的,另一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
-
换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤已经在父类中写好了。但是某些部分易变,易变部分可以抽象出来,供不同子类实现。这就是一种模板模式。
模板方法的一些实例
//模板方法的设计模式
public class TemplateTest {public static void main(String[] args) {PrintPrimeNumber p1 = new PrintPrimeNumber();p1.spendTime();}
}
abstract class Template{//计算某段代码需要花费的时间public void spendTime(){long start = System.currentTimeMillis();code();long end = System.currentTimeMillis();System.out.println("花费的时间"+(end - start));}public abstract void code(); //在父类中,用abstract修饰方法,没有方法体。
}class PrintPrimeNumber extends Template{@Overridepublic void code() {for(int i =2 ;i<=100000;i++){boolean isFlag = true;for(int j = 2 ;j<Math.sqrt(i);j++){if(i % j == 0){isFlag = false;break;}}if(isFlag){System.out.println(i);}}}
}
相关文章:
模板方法及设计模式——Java笔记
模板方法及设计模式 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。 解决的问题: 当功能内部一部分实现是确定的,另一…...
K8S认证|CKA题库+答案| 11. 创建PVC
11、创建PVC 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node ok8s master …...
多微信如何高效管理?一台电脑就能搞定!
对于有多个微信号的人来说,管理这些微信无疑是一道难题。 今天,就给大家分享一个能够让你高效管理多个微信号的神器——个微管理系统,下面,就一起来看看它都有哪些功能吧! 1、多号同时登录在线 系统支持多个微信号同…...
安装harbor出现问题: Running 1/1 ✘ Network harbor_harbor Error
安装harbor出现问题: [] Running 1/1 ✘ Network harbor_harbor Error 0.2s failed to create network harbor_harbor: Error response from daemon: Fa…...
JVM解释器和即时编译器的工作原理
1、解释器: 当Java程序启动时,JVM的解释器首先读取Java字节码(通常存在于.class文件中)。 解释器将字节码解析为相应的指令,每条指令对应JVM中的一个操作。 解释器根据指令的类型和操作数,执行相应的计算或…...
【产品经理】输出
引言: 在最近频繁的产品管理职位面试中,我深刻体会到了作为产品经理需要的不仅仅是对市场和技术的敏锐洞察,更多的是在复杂多变的环境中,如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享…...
MySQL入门学习.数据库组成.存储引擎
存储引擎是 MySQL 数据库的一个重要组成部分,它决定了数据的存储方式、索引方式、事务支持等特性。MySQL 支持多种存储引擎,常见的有 InnoDB、MyISAM、Memory 等。 存储引擎的特点和使用方法: 1. InnoDB: 是 MySQL 默认的存储引…...
【算法】分治 - 快速排序
快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、颜色分类二、排序数组三、数组中的第k个数四、最小的k个数总结 引言 本节主要介绍快速排序…...
设计模式13——桥接模式
写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 桥接模式(Bridge&a…...
第十六讲:数据在内存中的存储
第十六讲:数据在内存中的存储 1.整数在内存中的存储1.1存储方式1.2大小端字节序1.3大小端字节序排序规则1.4为什么要有大小端1.5练习1.5.1练习11.5.2练习21.5.3练习31.5.4练习41.5.5练习51.5.6练习61.5.7练习7 2.浮点数在内存中的存储2.1练习2.2浮点数的存储2.3浮点…...
【EXCEL_VBA_基础知识】15 使用ADO操作外部数据
课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除! 目录 1. 使用ADO链接外部数据源 2. 常用SQL语句(Execute(SQL语句)) 2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插…...
如何在Spring中配置Bean?
在Spring框架中配置Bean,主要有以下几种方式: XML配置文件注解配置Java配置类 1. XML配置文件 早期的Spring版本广泛使用XML配置文件来定义和配置Bean。在XML中,可以通过 <bean> 标签定义Bean,指定其类、唯一标识符&…...
深入学习 torch.distributions
0. 引言 前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical dist…...
Java中的判断校验非空问题
目录 字符串 字符串是空的情况 字符串不是空的情况 对象 对象是空的情况 对象不是空的情况 前端传的 int ,double类型等等 Optional 判断情况 https://www.cnblogs.com/zhangboyu/p/7580262.htmlhttps://www.cnblogs.com/zhangboyu/p/7580262.html 值为空的情况,不会…...
webman使用summernote富文本编辑器
前言 Summernote富文本编辑器功能强大,可以直接从word直接复制内容过来而不破坏原有的文档格式,非常适合做商品详情等内容的编辑工具。本文将展示如何在php高性能框架webman中使用summernote编辑器。 下载 去Bootstrap 中文网、Summernote、jQuery官网…...
jQuery里添加事件 (代码)
直接上代码 <!DOCTYPE html> <html><head></head><body><input type"text" placeholder"城市" id"city" /><input type"button" value"添加" id"btnAdd" /><ul id…...
Java数组的使用
Java数组的使用 前言一、数组基本用法什么是数组注意事项创建数组基本语法代码示例注意事项 数组的使用代码示例获取长度 & 访问元素注意事项 下标越界遍历数组使用 for-each 遍历数组 二、数组作为方法的参数基本用法代码示例打印数组内容 理解引用类型代码示例参数传内置…...
如何参与github开源项目并提交PR
👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正&…...
拼多多携手中国农业大学,投建陕西佛坪山茱萸科技小院
5月16日下午,中国农业大学陕西佛坪山茱萸科技小院在佛坪县银厂沟村揭牌。佛坪县素有“中国山茱萸之乡”的美誉,是全国山茱萸三大基地之一,当地山茱萸是国家地理标志产品,山茱萸肉产量位居全国第二。 为充分发挥佛坪县得天独厚的山…...
技术前沿 |【自回归视觉模型ImageGPT】
自回归视觉模型ImageGPT 引言一、ImageGPT的基本原理与创新之处二、ImageGPT在图像生成、理解等视觉任务上的应用三、ImageGPT对后续视觉Transformer模型发展的影响四、ImageGPT的深入应用 引言 在人工智能的飞速发展中,视觉模型作为其中一个重要的分支,…...
MGeo地址实体对齐镜像快速上手:5分钟部署,支持自定义阈值
MGeo地址实体对齐镜像快速上手:5分钟部署,支持自定义阈值 1. 引言:地址数据混乱,是时候换个思路了 你有没有被这样的问题困扰过? 公司CRM系统里,同一个客户因为地址写法不同,被重复记录了十几…...
OpenWRT路由器如何用Zerotier实现异地组网?保姆级配置教程(含防火墙规则详解)
OpenWRT路由器通过Zerotier构建安全异地内网的完整实践指南 异地办公已成为现代企业的常态,而如何安全高效地访问公司内网资源则是技术人员面临的现实挑战。传统VPN方案往往配置复杂且性能受限,而基于P2P技术的Zerotier配合OpenWRT路由器,能够…...
告别Bad Username or Password:手把手教你用MQTTX正确连接OneNET物联网开发平台(附Token生成避坑点)
物联网开发实战:OneNET平台MQTT连接全流程解析与避坑指南 在物联网项目开发中,MQTT协议因其轻量级和高效性成为设备连接的首选方案。而OneNET作为国内主流的物联网平台,为开发者提供了完整的MQTT接入能力。但在实际对接过程中,&q…...
Ostrakon-VL扫描终端实战教程:像素特工式零售图像识别部署指南
Ostrakon-VL扫描终端实战教程:像素特工式零售图像识别部署指南 1. 像素特工终端介绍 想象你是一位未来世界的零售侦探,手持高科技扫描仪在商店里穿梭。Ostrakon-VL扫描终端就是你的数字助手,它能帮你"看"懂货架上的每一个细节。这…...
猫抓插件深度解析:浏览器资源嗅探的终极实战指南
猫抓插件深度解析:浏览器资源嗅探的终极实战指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓插件是一款功能强大的开源浏览器扩…...
3步实现视频硬字幕精准提取:本地化多语言解决方案如何解决你的字幕难题
3步实现视频硬字幕精准提取:本地化多语言解决方案如何解决你的字幕难题 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区…...
python基于Hadoop的就业推荐系统的设计与实现 Spark+Hadoop+Hive 大数据 深度学习 机器学习
前言随着就业市场信息不对称问题日益突出,开发高效的智能就业推荐系统 成为当务之急。本研究基于Hadoop生态系统,设计并实现了一套面向求职者和招聘企业的智能推荐系统。系统采用分布式架构,后端基于Django框架实现业务逻辑处理,前…...
小白也能搞定:CYBER-VISION零号协议智能助盲系统部署全流程
小白也能搞定:CYBER-VISION零号协议智能助盲系统部署全流程 1. 系统介绍与准备工作 CYBER-VISION零号协议是一款专为视障人士设计的智能助盲系统,它通过先进的计算机视觉技术,将周围环境实时转化为可理解的语音提示。想象一下,当…...
LiuJuan20260223Zimage开箱体验:基于Z-Image LoRA,这个专精模型到底有多好用?
LiuJuan20260223Zimage开箱体验:基于Z-Image LoRA,这个专精模型到底有多好用? 你有没有遇到过这样的情况:想用AI画一个特定的人物,比如你故事里的主角,或者一个IP形象,但生成的图片要么不像&am…...
保姆级万物识别教程:阿里开源镜像快速部署,识别图片超简单
保姆级万物识别教程:阿里开源镜像快速部署,识别图片超简单 1. 开篇:为什么选择这个镜像? 今天给大家介绍一个特别实用的AI工具——阿里开源的"万物识别-中文-通用领域"镜像。这个镜像最大的特点就是简单易用ÿ…...
