模板模式 - 纳新纳新

1 介绍


小白:大哥呀,你们培训了两天到底培训了啥呀,给我讲讲呗。

Acey:额额额,谈了谈人生,谈了谈理想,谈了谈工作室的纳新。想了解详情往里戳<a href="http://www.jianshu.com/p/1c6785f6abc3">培训日</a>

小白:哇,纳新?TW 纳新是不是特别的严呀。

Acey:不严不严,大前提是你得是个妹子。😍。其实纳新的安排使用了模板模式,将以前的纳新经历总结成一个套路,一个模板,然后套着这个模板去做。

小白:好腻害的赶脚。快给我讲讲模板模式吧。😉

模板模式:模板模式属于行为模式的一种, 定义了一个抽象模板类并编写了相应的方法,具体的实现交给子类,但方法的具体调用顺序还是由抽象类决定。

小白:这个抽象类就是一个模板吧,而里面的抽象方法呢就是具体的步骤,可以这样理解嘛?

Acey:对的

小白:那具体的调用顺序是什么意思呢?

Acey:拿纳新来说吧,纳新的具体步骤一般就是前期的宣传、宣讲会、报名、笔试面试、结果通知,而且纳新的顺序一般也是这样,所以不需要用户再去修改固有的顺序,于是就会在抽象类中定义一个调用方法,这个方法中就会按照固有的顺序去调用每一个步骤方法。

小白:还有点晕,举个栗子吧😁

2 实现


首先,先来看看类图

类图

其中

  • AbstractClass:抽象模板类
  • ConcreteClass:具体的模板实现类

具体实现

一步:创建模板抽象类

Recruit.class

//招聘抽象类
public abstract class Recruit {
    
    //宣传
    public abstract void propaganda();
    
    //宣讲
    public abstract void preach();

    //报名
    public abstract void signUp();
    
    //面试
    public abstract void interview();
    
    //结果
    public abstract void result();
    
    //执行
    public final void execute(){
        propaganda();
        preach();
        signUp();
        interview();
        result();
    }
}

二步:具体实现类

TWRecruit.class


//TW招聘
public class TWRecruit extends Recruit{

    //宣传
    @Override
    public void propaganda() {
        System.out.println("TW宣传---");
    }

    //宣讲
    @Override
    public void preach() {
        System.out.println("TW宣讲中------");      
    }

    //报名
    @Override
    public void signUp() {
        System.out.println("TW报名中---------");       
    }

    //面试
    @Override
    public void interview() {
        System.out.println("TW面试中------------");        
    }
    
    //结果
    @Override
    public void result() {
        System.out.println("TW的招聘结果---------------");       
    }

}

三步:测试

MainClass.class

public class MainClass {
    public static void main(String[] args) {
        Recruit tw = new TWRecruit();
        tw.execute();
    }
}

运行结果

这样整个招聘流程就跑完了。以后其它类似的招聘只需要去实现抽象的模板类,并实现相应的方法即可。
行为的调用交给父类,行为的具体实现交给子类。将公共的代码提取了出来,更加便于维护。

喜欢的话戳一下喜欢呗。
有什么建议的话希望大家能在下方回复😋
上一篇:《迭代模式 - 报告老师,我想逃课》
下一篇:《备忘录模式》(待更)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,386评论 1 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,129评论 18 399
  • 1 场景问题# 1.1 发送提示消息## 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统...
    七寸知架构阅读 10,515评论 5 63
  • 张萌 分享第五天 早上出门时,跟宝宝拜拜,她也会挥着手了,可能她也不知道拜拜是什么意思,但是大人说拜拜时,她条件反...
    莫星月阅读 663评论 0 0