You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遵循DRY原则改写代码避免重复?附现有实现及疑问

遵循DRY原则的代码重构

首先,我们可以提取两段代码中重复的逻辑,通过引入步长变量和布尔标记来消除重复:

if (c != n) {
    // 确定c的调整方向:1表示递增,-1表示递减
    int step = (c < n) ? 1 : -1;
    // 标记是否需要在循环后反转p的值
    bool need_invert = (c > n);
    
    // 统一的循环逻辑
    while (c != n) {
        p *= b;
        c += step;
    }
    
    // 根据标记决定是否反转p
    if (need_invert) {
        p = 1.0 / p;
    }
}

重构说明:

  • 用step变量替代了原代码中c++和c--的差异,通过一次判断确定调整方向,避免了重复的循环结构。
  • 用need_invert布尔变量记录是否需要对p取倒数,将原代码中仅在c>n时执行的逻辑统一到循环之后处理。
  • 完全保留原代码的所有行为:包括修改c使其最终等于n,以及对p的计算逻辑完全一致。

这种重构方式严格遵循DRY原则,将重复的循环代码合并为单一实现,同时通过变量封装了不同分支的差异点,代码更简洁且易于维护。

内容的提问来源于stack exchange,提问作者XMS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:20:59