首页/开发/代码质量与评审速查/抽象层次一致性(同一层说同一类事)
设计原则与模式62 条

抽象层次一致性(同一层说同一类事)

函数与模块内部应保持在同一抽象层次:高层编排与底层位运算混排会打断阅读节奏;提炼(Extract Function)是最常用的层级校正手段,配合命名让层次显式。

信号一行调用高层步骤,下一行处理字节细节
校正把低层细节提炼为命名函数
检验每行是否与函数名同一语气层次

层次混排示例

层次混排示例
void render(Page page) {
    layout(page);
    // ↓ 细节层次骤降
    for (int i = 0; i < page.raw.length; i++) {
        out.write(page.raw[i] & 0xFF);
    }
}

// 提炼后:render 只讲步骤
void render(Page page) { layout(page); paint(page); }

易错点

  • 层层提炼到空壳函数:过度分解反而难懂
  • 注释掩盖层次混排:注释承担了提炼该做的事

数据来源与参考

  • 《Clean Code》(Robert C. Martin)· 函数与抽象层次讨论
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌