java 设计模式之模板方法
2024-08-27 14:03:03
模板方法的定义
定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。
模板方法使得子类在不改变算法结构的情况下,重新定义某些算法的步骤。
一次性实现一个算法不变的部分,把可变的行为留给子类实现。
如果想拿高工资,那么java基础必会,设计模式和算法要精通。JVM是进阶的必选,在加上经验就可以拿到想要的工资。
代码实现如下
public abstract class AHighWage {
protected final void javaCourse(){
this.baseJava();
this.masterDesignPattern();
this.masterAlgorithm();
if (needKnowJVM()){
this.masterJVM();
}
this.otherKnow();
} final void baseJava(){
System.out.println("java基础必备");
} final void masterDesignPattern(){
System.out.println("精通java设计模式");
} final void masterAlgorithm(){
System.out.println("精通数据结构和算法");
} //钩子方法
protected Boolean needKnowJVM(){
return false;
} final void masterJVM(){
System.out.println("精通jvm虚拟机");
} abstract void otherKnow();
}
两个子类一个毕业生和一个老司机
public class Graduation extends AHighWage {
@Override
void otherKnow() {
System.out.println("有计算机四级证书");
}
}
public class OldDriver extends AHighWage {
private Boolean knowjvm = false; public OldDriver(Boolean bl){
this.knowjvm = bl;
}
@Override
void otherKnow() {
System.out.println("很多年工作经验");
System.out.println("拥有行业的业务背景");
} @Override
protected Boolean needKnowJVM(){
return this.knowjvm;
}
}
测试类
public class demo {
public static void main(String[] args){
AHighWage graduation = new Graduation();
graduation.javaCourse();
System.out.println("----------------------------");
AHighWage olddriver = new OldDriver(true);
olddriver.javaCourse();
}
}
打印如下
java基础必备
精通java设计模式
精通数据结构和算法
有计算机四级证书
----------------------------
java基础必备
精通java设计模式
精通数据结构和算法
精通jvm虚拟机
很多年工作经验
拥有行业的业务背景
最新文章
- HideFlag隐藏标识
- Spark入门实战系列--9.Spark图计算GraphX介绍及实例
- 大数据批量插入数据库使用(SqlBulkCopy )效率更高
- centos一键优化脚本
- C类型
- CSDN markdown 编辑 三 基本语法
- java初级开发程序员(第三单元)
- hdu5651 xiaoxin juju needs help(逆元)
- selenium-webdriver的二次封装(十)
- react-native 配置 在mac 上找不到.npmrc
- vue2的缓存问题(非原创)
- 谈谈我对Manacher算法的理解
- Objecttive-C各种问题
- CSS高级布局
- 64_q2
- 秒懂算法1——冒泡排序,及一种小改进(C#实现)
- 关于IE8版本提示“不支持‘trim’此属性或者方法”的解决办法。转摘雨网络
- 【架构】Twitter高性能RPC框架Finagle介绍
- php创建对象。真!变!态!
- apache 一个站点配置多个域名
热门文章
- java Spring 各版本jar包下载地址
- Mysql锁原理浅谈
- Java集合之LinkedHashMap源码分析
- ORM作业
- Python 函数的作用域
- 通过webpack2从0开始配置自己的vue项目 1
- 使用bootstrap的JS插件实现模态框效果
- win7 x64 +vs2015 + cmake3.10.3编译opencv-3.4.1+opencv_contrib-3.4.1源码,并进行配置
- OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC
- Linux 学习笔记之超详细基础linux命令 Part 13