java 设计模式之模板方法

Posted 愤怒中的小草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 设计模式之模板方法的主要内容,如果未能解决你的问题,请参考以下文章

java设计模式之模板方法模式

java 设计模式之模板方法

Java学习笔记——设计模式之七.模板方法模式

Java设计模式(16)——行为模式之模板方法模式(Template)

java设计模式之模板模式

Java设计模式透析之 —— 模板方法(Template Method)