后端岗位面试题更新 2026-08-05

给一个包含多个 if else 语句的函数,该函数依据不同的折扣类型执行不同的 discount 计算方法,如何优化使其能够在新增新的折扣方法时具备扩展性。

蔚来后端开发汽车系统设计技术原理方案权衡

考察说明

考察对条件分支重构与开闭原则的理解,以及策略模式的应用能力

回答思路

  1. 识别出以 if else 实现的分支会导致新增类型需修改原函数,违反开闭原则
  2. 提出使用策略模式,将每种折扣计算封装为独立策略类,消除条件分支
  3. 说明策略的选择与注册机制(如映射表或工厂),使新增折扣类型无需改动核心逻辑
  4. 结合简单工厂或依赖注入,隔离具体策略的创建与使用,提升可测试性与维护性
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。