同程Java开发一面面经

同程旅行 · Java开发 · 一面 · 2026-03

面试题目

  1. 策略模式和工厂模式的作用是?
  2. 线索批量导入使用批次号作为key—可以优化一下,做个状态流转,下次再上传的时候,先判断有没有处理
  3. 模糊查询的业务场景是?

参考解析

  1. 策略模式与工厂模式:策略模式用于定义一系列算法,将算法封装并使它们可互换,常用于优化if-else结构;工厂模式用于封装对象的创建逻辑,解耦对象的创建与使用。二者常结合使用(如工厂负责创建策略对象,策略负责执行逻辑)。
  2. 批量导入优化:建议引入流水表记录任务状态(INIT, PROCESSING, COMPLETED, FAILED),利用唯一键防重。处理时先检查记录状态,若已存在则直接返回或进行幂等更新,支持断点续传或任务状态查询。
  3. 模糊查询场景:通常用于支持搜索功能,如用户搜索姓名、关键词补全等。技术实现上,数据量小可用SQL的LIKE查询,数据量大需结合Elasticsearch等搜索引擎使用,注意避免全表扫描以保证性能。