给一个包含多个 if else 语句的函数,该函数依据不同的折扣类型执行不同的 discount 计算方法,如何优化使其能够在新增新的折扣方法时具备扩展性。
考察说明
考察对条件分支重构与开闭原则的理解,以及策略模式的应用能力
回答思路
- 识别出以 if else 实现的分支会导致新增类型需修改原函数,违反开闭原则
- 提出使用策略模式,将每种折扣计算封装为独立策略类,消除条件分支
- 说明策略的选择与注册机制(如映射表或工厂),使新增折扣类型无需改动核心逻辑
- 结合简单工厂或依赖注入,隔离具体策略的创建与使用,提升可测试性与维护性
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。