• 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虚拟机
    很多年工作经验
    拥有行业的业务背景
  • 相关阅读:
    九.Protobuf3特殊类型
    八.Protobuf3更新消息类型(添加新的字段)
    七.Protobuf3 嵌套类型
    六.Protobuf3引入其他.proto文件
    五.Protobuf3 枚举
    四.Protobuf3 缺省值
    VC 在调用main函数之前的操作
    Windows下的代码注入
    C 堆内存管理
    VC++ 崩溃处理以及打印调用堆栈
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10225359.html
Copyright © 2020-2023  润新知