zoukankan      html  css  js  c++  java
  • java 设计模式之模板方法

    模板方法的定义

    定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。

    模板方法使得子类在不改变算法结构的情况下,重新定义某些算法的步骤。

    一次性实现一个算法不变的部分,把可变的行为留给子类实现。

    如果想拿高工资,那么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虚拟机
    很多年工作经验
    拥有行业的业务背景
  • 相关阅读:
    Django 批量保存图片文件 自定义上传方法
    Pycharm 激活码
    Django项目关闭debug模式后,静态文件无法加载的解决办法
    python 获取环境变量
    django 中多字段主键(复合、联合主键)
    在pycharm中启动Django服务器
    Django Aggregation聚合 django orm 求平均、去重、总和等常用方法
    nohup 后台启动程序,并输出到指定日志
    Android网络开发之WIFI
    WebView和JavaScript如何实现相互调用
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10225359.html
Copyright © 2011-2022 走看看