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虚拟机
    很多年工作经验
    拥有行业的业务背景
  • 相关阅读:
    java实验二
    实验1
    响应式站点设计之使用指南
    掌管一个网站?给你九条忠告
    在本地App上设计Web代码
    订阅
    下载站焦点图
    个性化电影频道js
    展开收起播放列表
    onoff组件
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10225359.html
Copyright © 2011-2022 走看看