-
项目经理面试
-
第一关面试
*/
@Service(Constants.INTERVIEW_PM)
@Component
public class PMHandler extends InterviewHanlder {
@Override
public void getTheInterview() {
System.out.println(“项目经理面试–通过----------------”);
nextInterviewFlag();
}
}
第二关技术总监面试实现:
package com.xy.design.hanlder.impl;
import com.xy.design.common.Constants;
import com.xy.design.hanlder.InterviewHanlder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
/**
-
技术总监面试
-
第二关面试
*/
@Service(Constants.INTERVIEW_JS)
@Component
public class TechnologyHandler extends InterviewHanlder {
@Override
public void getTheInterview() {
System.out.println(“技术总监面试–通过----------------”);
nextInterviewFlag();
}
}
第三关,老板面试实现:
package com.xy.design.hanlder.impl;
import com.xy.design.common.Constants;
import com.xy.design.hanlder.InterviewHanlder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
/**
-
老板面试
-
第三关面试
*/
@Service(Constants.INTERVIEW_BOOS)
@Component
public class BoosHandler extends InterviewHanlder {
@Override
public void getTheInterview() {
System.out.println(“老板面试–通过----------------”);
nextInterviewFlag();
}
}
第四关 hr面试实现
package com.xy.design.hanlder.impl;
import com.xy.design.common.Constants;
import com.xy.design.hanlder.InterviewHanlder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
/**
-
hr面试
-
第四关hr行政面试
*/
@Service(Constants.INTERVIEW_HR)
@Component
public class HrHandler extends InterviewHanlder {
@Override
public void getTheInterview() {
System.out.println(“HR谈面试–通过----------------”);
}
}
具体实现类:
package com.xy.design.service;
import com.xy.design.common.Constants;
import com.xy.design.hanlder.InterviewHanlder;
import com.xy.design.utils.SpringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
-
-
责任链具体实现类
-
@author xy
-
@since 2021-10-21
*/
@Service
public class interviewHanlderServiceImpl implements InterviewHandlerService {
private InterviewHanlder firstGatewayHandler;
@Override
public InterviewHanlder getHandler() {
//todo 这里最好是写成动态数据库配置 我这里测试使用写死的方式
InterviewHanlder firstInterviewHanlder = SpringUtils.getBean(Constants.INTERVIEW_PM, InterviewHanlder.class);
//根据顺序依次设置责任链执行
List hanlderList = new ArrayList<>();
hanlderList.add(Constants.INTERVIEW_JS);
hanlderList.add(Constants.INTERVIEW_BOOS);
hanlderList.add(Constants.INTERVIEW_HR);
//用一个临时变量接收全局Hanlder
InterviewHanlder temoInterviewHanlder = firstInterviewHanlder;
for (String hanlder : hanlderList) {
//通过代理获取实现类SpringContenxt
InterviewHanlder hanlderImpl = SpringUtils.getBean(hanlder, InterviewHanlder.class);
temoInterviewHanlder.setNextGatewayHandler(hanlderImpl);
}
this.firstGatewayHandler = firstInterviewHanlder;
return firstGatewayHandler;
}
}
公共参数:
/**
- 项目经理标识
*/
public static String INTERVIEW_PM = “pm”;
/**
- 技术总监标识
*/
public static String INTERVIEW_JS = “js”;
/**
- 老板标识
*/
public static String INTERVIEW_BOOS = “boos”;
知其然不知其所以然,大厂常问面试技术如何复习?
1、热门面试题及答案大全
面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer
2、多线程、高并发、缓存入门到实战项目pdf书籍
3、文中提到面试题答案整理
4、Java核心知识面试宝典
覆盖了JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入
C、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入**
[外链图片转存中…(img-5F2TXhRU-1714707189640)]
[外链图片转存中…(img-CJXqDt14-1714707189640)]
[外链图片转存中…(img-BgJUUrlI-1714707189641)]