面向对象(下) 5.2-模板方法的设计模式
2022/6/11 23:51:56
本文主要是介绍面向对象(下) 5.2-模板方法的设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.解决的问题:
在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤已经在父类中写好了。但是某些部分易变,易变部分可以抽象出来,共不同的子类实现。这就是一种模板设计。
2.举例
abstract class Template{//模板 //计算某段代码执行所需要花费的时间 public void spendTime(){//spendTime()整体的流程步骤是固定的。 long start = System.currentTimeMillis(); this.code();//不确定部分,易变部分 long end = System.currentTimeMillis(); System.out.println("花费的时间为" + (end - start)); } public abstract void code(); } class SubTemplate extends Template{ @Override public void code(){ for(int i = 2; i <=1000;i++){ boolean isFlag = true; for(int j = 2; j <= Math.sqrl(i); j++){ if(i % j == 0){ isFlag = false; break; } } if(isFlag){ System.out.println(i); } } } }
3.应用场景
模板方法设计模式是编程中经常用得到的模式。各个框架、类库中都有他的影子,比如常见的有:
数据库访问的封装
Junit单元测试
JavaWeb的Servlet中关于doGet/doPost方法调用
Hibernate中模板程序
Spring中JDBC Temlate、HibernateTemplate等
这篇关于面向对象(下) 5.2-模板方法的设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署