模版方法设计模式

ABAP - Function ALV 11 - 单元格下拉框 【代码】ABAP - Function ALV 11 - 单元格下拉框。 阅读详情

模版方法设计模式

第一部分

1、模版方法设计模式

在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类完成;

2、模版模式的好处

2.1、提高了代码的扩展性;

2.2、提高了代码的复用性;

3、模版模式应用的简单原则

3.1、抽象父类可以定义需要使用的某些方法,其余留给子类去实现;
3.2、父类提供的方法只是定义了一个通用方法,其实现必须依赖子类的辅助;

4、举例

需求:获取一段程序运行的时间;
原理:获取程序开始和结束时间并相减即可;
获取时间:System类里面有个static long currentTimeMillis()

5、模版模式的代码体现

<span style="font-size:14px;">//类也是抽象类
abstract class GetTime
{
//	为了避免被子类复写,将该方法定义成final
	public final void getTime()//不让子类复写,
	{
//		获取开始时间
		long start = System.currentTimeMillis();
//		由于需要运行的代码是不确定的,那么单独把这边的代码封装一下
//		直接调用就可以了,
		runCode();//这个功能是不确定的功能
//		获取结束时间
		long end = System.currentTimeMillis();
		System.out.println("毫秒::"+(end-start));
	}
//	把这个方法单独提取出来,单独封装一个方法,方便于子类去复写,
//	这段代码不知道是什么,因此必然是抽象的;
	public abstract void runCode();
}
//SubTime继承了GetTime,复写父类里面的方法
class SubTime extends GetTime
{
	public void runCode()
	{
		for(int x=0;x<4000;x++)
		{
			System.out.println(x);
		}
	}
}
class  TemplateDemo
{
	public static void main(String[] args) 
	{
		SubTime gt = new SubTime();//建立子类对象
		gt.getTime();//调用父类方法;
	}
}</span><strong style="font-size:18px;">
</strong>

6、运行的结果

第二部分

我的总结

1、如果父类的方法不想被子复写,那么可以在前面加上final关键字修饰;
2、父类的一部分代码要暴露(public)出去,但是父类中的方法不一定是抽象的;
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构 本文记录的是基于RepVit的YOLOv11轻量化改进方法研究。RepVit的网络结构借鉴ViT的设计理念,通过分离的token mixe和减少推理时的计算和内存成本,同时减少扩展比率并增加宽度,降低延迟,并通过来弥补参数大幅减少的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和五种模型,以满足不同的需求。 阅读详情

相关推荐

ffmpeg中av_read_frame阻塞的原因与解决方案

最近用到ffmpeg,想要av_read_frame立即返回,但是看网上的博客,都没有详细的解说,那就自己看源码。 两种方法: 设置回调打断函数和设置超时 超时,但是如果只设置该参数,依然会在av_read_frame中阻塞, av_dict_set(&inputDic, "stimeout", "2*1000*1000", 0); // milliseconds //打断回调 m_avformatCtx->interrupt_callback.callback = interru

weixin_43360707的博客 1万+

【黑马程序员】23种设计模式——设计原则

跟着B站的黑马程序员学习23种设计模式,语言为java,目前是第三章内容——设计原则黑马程序员——设计原则以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

weixin_54533016的博客 1189

STM32H743 ADC多通道采样实战:CubeMX配置+DMA传输避坑指南

本文详细介绍了STM32H743 ADC多通道采样的实战配置,包括CubeMX参数设置、DMA传输优化及常见问题解决方案。重点解析了ADC模块的核心特性、多通道采样序列配置、Cache一致性处理等关键技术,帮助开发者高效实现稳定可靠的模拟信号采集系统。

weixin_29175469的博客 613

软件设计原则

1,设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克

cc_01230的博客 601

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

x265探索与研究(四):如何编码视频?

如何编码视频?           本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。   1、命令行的方法   (1)、第一种方式生成*.265格式的视频文件           第一种方式可以生成*.265格式的视频文件,对应的命令为: x265 --input-res 352x288 --fps 30 hall_cif_352x288_300.y

成长Bar的博客专栏 3938

黑马程序员_设计模式

——- android培训、java培训、期待与您交流! ———-设计模式:把软件行业中出现的问题进行抽取并解决。总共有23种。 对问题行之有效的解决方式,其实它是一种思想。 设计模式分为三种类型,共23种。创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、

wu_zida的博客 672

TC3xx系列LMU与SPR实战:将关键算法从Flash搬移至PSPR提升5倍执行效率

在实际电机控制项目中,通过将FOC算法全部迁移到PSPR,我们不仅将执行时间从56μs降至11μs,还将最坏情况下的时间偏差控制在±0.3μs以内。实测数据:在TC397上执行Flash中的32位浮点矩阵乘法,平均每条指令需要8.7个周期,而同样的代码在PSPR中仅需1.2个周期。传统开发中,工程师往往将所有代码放在Flash中运行,这相当于让F1赛车在乡村公路上行驶。迁移后不仅平均执行时间缩短,更重要的是时间抖动从±15%降低到±2%以内,这对闭环控制系统至关重要。不是所有代码都适合迁移到PSPR。

weixin_31421613的博客 299

黑马程序员-Java设计模式

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-目录: 1. 生成器模式 2. 策略模式 3. 模板模式 4. 工厂模式 5. 装饰模式 6. 享元模式 7. 单例模式1. 生成器模式(Builder Pattern)例如下面的Student类,实例字段很多,这样如果在构造器中创建一个对象的话非常的麻烦,需要传入多达7个参数。遇到这种场景,我们可以

Most_want的博客 848

CLRNet车道线检测模型在Orin Nano Super开发板上的全栈部署与优化实践

本文详细介绍了将CLRNet车道线检测模型部署到NVIDIA Orin Nano Super开发板的全过程。内容包括:1) Orin开发板硬件规格分析;2) JetPack SDK环境配置与Python虚拟环境搭建;3) CLRNet模型架构解析与PyTorch实现;4) 模型转换与TensorRT加速优化方法。通过系统性的环境配置、模型转换和性能优化,为边缘计算场景下的车道线检测应用提供了完整的解决方案,实现了在Orin平台上的高效部署。

huanghm88的专栏 227

apache 403错误 Forbidden解决方法

当网页打开提示以下错误时,即出现了403错误。 Forbidden You don't have permission to access / on this server. 403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。通常情况可能(但不限于此)的原因有: 原因1:apache配置文件中没有对站点目录的权限许可,这通...

lmseo5hy的博客 1500

黑马程序员——设计模式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

578

数学史学习资料:史前数学

著名物理学家伽莫夫(宇宙大爆炸理论以及核聚变理论的提出者)在他的科普书《从1到无穷大》中举了这样一个例子。两个原始部落的酋长比赛,看谁说的数字大。第一个酋长说了三,第二个酋长想了半天,然后说你赢了。你今天听起来觉得这两个人真可笑,至少说出四,岂不就赢了?但是对这两位酋长来讲,所拥有的东西就很少超过三个,比三个多的东西他们就觉得没有必要数清楚了,就用许多来形容了。也就是说,他们生活的环境限制了他们的认知。

howard2005的专栏 902

设计模式——模版方法设计模式(行为型)

模版方法设计模式是一种行为型设计模式,定义了算法的步骤顺序和整体结构,将某些步骤的具体实现延迟到子类中。它通过抽象类定义模板方法,子类实现抽象步骤,实现代码复用和算法流程控制。该模式适用于有固定流程但部分步骤可变的场景,如业务流程控制等。

庄小焱 1499

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

设计模式模版方法

概述 模版方法就是定义一个算法的骨架,将骨架中的特定步骤延迟到子类中。模板方法模式使得子类可以不改变算法的结构即可重新定义(重写)该算法的某些特定步骤。 优缺点 优点 解决了代码的重复问题 提高了代码的可扩展性 规定了代码的执行流程 缺点 每增加一个实现,必须增加一个子类 例子 中国的伟大在于五千年的历史,诞生了属于自己的医学体系,时至今日,人们看病可以选择中医和西医,两者的去医院看病的大概流程是一致的,但是诊断方法并不同,通过代码形式展现出来。 挂号→诊断→缴费→取药 抽象模版 /** * @a

qq_38306425的博客 559

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

设计模式之禅(三):模版方法模式,介绍+demo+HttpServlet中的模版方法运用

Template Method Pattern is a behavioral design pattern that defines the skeleton of an algorithm in the superclass but lets subclasses override specific steps of the algorithm without changing its structure.

人在江湖 1117

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

设计模式-模版方法

定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些步骤。Template Method模式是一种非常基础的设计模式,在面向对象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性)为很多应用程序框架提供了灵活的扩展点,是代码复用方面的基本实现结构。除了可以灵活应对子步骤的变化外,“不要调用我,让我来调用你”的反向控制结构是Templater Method的典型应用。

Lenn Louis' Scribe 1110

【设计模式-行为型】模版方法模式

今天爸爸在看电视没有烟抽了,也快吃饭了没有酒喝了。这个时候 爸爸把你叫过来,来给你30块钱,你给我去买个烟,在买个酒, 剩下的钱你自己支配。这个例子就是模板方法模式,它通过在抽象类中定义一个算法的骨架,将一些步骤延迟到子类中实现,从而在不改变算法结构的情况下,允许子类重新定义算法中的某些步骤。在这个例子中,爸爸给你30块钱,让你去买烟和酒,剩下的钱你自己支配。爸爸定义了任务的总体步骤(买烟、买酒、处理剩余钱),这些步骤的顺序是固定的,但具体的购买细节(如烟和酒的价格)由你(子类)来实现。

qq_36038282的博客 887

设计模式 - 模版方法

设计模式 - 模版方法 场景 小张的团队最近接受一个需求,实现实现一家咖啡店的冲泡咖啡和茶的冲泡自动化。之前这家咖啡店都是由咖啡师傅手动进行调制咖啡和茶。现在咖啡店需要引入自动化的点单和调制饮料的系统,小张负责实现调制饮料的功能。 咖啡师傅手工冲泡咖啡和茶的流程: 冲泡咖啡: 把水煮沸 用沸水冲泡咖啡 把咖啡倒入杯子 加糖和牛奶 冲泡茶: 把水煮沸 用沸水冲泡茶叶 把茶倒入杯子 加柠檬 小张先简单...

u014033218的专栏 191

设计模式之模版方法

一、模版方法:所有处理的请求流程都一样,只有流程中某些较少的地方不一样,可以考虑使用模版方法。 比如我们每天上班,都是 起床、上班、下班、睡觉的流程。那么可以使用模版方法。 模板方法UML图: 二、模版方法实现代码: public abstract class TemplateClassAbstract { public void getUp(){ Syste...

张云生的博客 212

Java设计模式_模版方法设计模式

1.模版方法设计模式:在父类的一个方法中定义一个总体算法骨架(算法模板),而将一些步骤延迟到子类中,因为不同的子类实现细节不同,模板方法可以使得子类不改变算法结构的情况下,重新定义算法中的某些步骤。 抽象父类至少提供的方法 模板方法:一种通用的处理方式,即模板 抽象方法:一种具体的业务实现,有子类完成 注意:抽象父类提供的模板方法只是定义了一个通用算法,其实现必须依赖子类的辅助 pa...

weixin_45460315的博客 209

设计模式-模版方法模式

1.UML类图AbstractClass实现了一个模版方法,定义了算法的骨架,具体子类将重定义PrimitiveOperation以实现一个算法的步骤。ConcreteClass实现PrimitiveOperation以完成算法中与特定子类相关的步骤。2.示例代码模版方法,定义了算法的骨架。public abstract class AbstractClass {    public abstra...

qq_22866497的博客 131

【设计模式】【九】模版方法模式

1.模版方法模式简介模版方法模式介绍在软件开发中,有时会遇到类似的情况,某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性。为了提高代码的复用性和系统的灵活性,可以使用模板方法模式来应对这类情况。模版方法模式定义定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。模版方法模式结构图 AbstractClass

帅胖子的博客 684

0202年了!你还不知道模版方法设计模式?

什么是 Template ? 模版方法设计模式是一种行为型设计模式。官方定义理解比较隐晦,翻译成中文意思是这样的 模板方法模式在一个方法中定义一个 算法骨架,并将某些步骤推迟到 子类中实现。模板方法模式可以让子类在 不改变算法整体结构的情况下,重新定义算法中的某些步骤。 这里通过一个模版方法的UML类图来方便理解 通俗来讲 : 定义一个抽象类 AbstractTemplate,并定义一个或若干抽象方法 abstractMethod 由子类去继承抽象类的同时实现抽象方法, 在抽象类的 operation

Long-Tai 5279

Java设计模式解析之十四——模版方法模式

模版方法模式1.前言2.特点 1.前言 设计模式共有23种,根据目的准则分类,分为三类 创建型设计模式,共5种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 结构型设计模式,共7中:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、响元模式。 行为设计模式,共11种:策略模式、模版方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 这里介绍一下模版方法模式。 2.特点 定义: ...

fanhenghao的博客 314
上一篇: 函数的两个特性(重写和重载)
下一篇: Java-面向对象(多态)
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值