软件工程 选择题 较难 ★ 精品

重构常用手法与模式引入 — 软件工程选择题

软件设计模式 模式综合应用与重构 AI 三重审校通过

题目
某物流系统的 Shipment(运单)类中,calculateFee() 方法内嵌多段 if-else 判断客户等级以决定费率,且同类费率判断代码还散落在 Invoice(发票)类中。现需重构:第一步消除 Invoice 中的重复费率逻辑,第二步使新增客户等级时无须修改既有条件分支。下列重构手法与模式引入的组合最恰当的是( ) A. 第一步用 Extract Class 抽取费率计算为独立类,第二步用 Replace Conditional with Polymorphism 引入策略模式 B. 第一步用 Inline Method 将费率代码内联到调用处,第二步引入单例模式统一费率 C. 第一步用 Rename Method 重命名费率方法,第二步引入装饰器模式叠加费率 D. 第一步用 Extract Method 提取方法后直接删除 Shipment 类,第二步引入工厂方法模式创建运单