模板方法模式
模板方法模式是指定义一个算法的⻣架,并允许子类为一个或者多个步骤提供实现。
使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。
采用模板方法模式的核心思路是处理某个流程的代码已经具备,但其中某些节点的代码暂时不能确定。此时可以使用模板方法。
示例
package com.lagou.edu;
/**
* 面试大厂流程类
*/
public abstract class Interview {
private final void register() {
System.out.println("面试登记");
}
protected abstract void communicate();
private final void notifyResult() {
System.out.println("HR小姐姐通知面试结果");
}
protected final void process() {
this.register();
this.communicate();
this.notifyResult();
}
}
Java岗位面试者:
package com.lagou.edu;
/**
* 面试人员1,它是来面试Java工程师的
*/
public class Interviewee1 extends Interview{
public void communicate() {
System.out.println("我是面试人员1,来面试Java工程师,我们聊的是Java相关内容");
}
}
前端岗位面试者:
package com.lagou.edu;
/**
* 面试人员2,它是来面试前端工程师的
*/
public class Interviewee2 extends Interview{
public void communicate() {
System.out.println("我是面试人员2,来面试前端工程师,我们聊的是前端相关内容");
}
}
客户端测试类:
package com.lagou.edu;
public class InterviewTest {
public static void main(String[] args) {
// 面试Java工程师
Interview interviewee1 = new Interviewee1();
interviewee1.process();
// 面试前端工程师
Interview interviewee2 = new Interviewee2();
interviewee2.process();
}
}
打印结果:

文章内容输出来源:拉勾教育Java高薪训练营

本文通过一个面试流程的示例介绍了模板方法设计模式,该模式定义了算法的骨架,允许子类对部分步骤进行重定义。在示例中,`Interview`类作为模板,定义了登记、沟通和通知结果的流程,而`Interviewee1`和`Interviewee2`两个子类分别针对Java和前端岗位实现了不同的沟通环节。这种模式使得在不改变整体流程的情况下,能灵活地定制不同岗位的面试过程。
1676

被折叠的 条评论
为什么被折叠?



