用途:在代码审查或重构时,处理因链式调用和了解嵌套内部结构而产生的对象耦合问题,应用迪米特法则(Law of Demeter / 最少知识原则)。核心主张是只与直接协作者对话,不通过它们去访问陌生对象。
主要能力与工作流:
- 找出 a.getB().getC().doX() 之类的调用链,以及导航对象结构的代码。
- 识别调用方实际要执行的决策或行为。
- 把该行为移动到拥有所需知识的对象上。
- 用意图明确的方法替代结构导航。
- 明确保留 DTO、builder 和流式 API 的例外,并非所有链式调用都是领域耦合问题。
检查要点:火车残骸会暴露结构、使调用方脆弱;重复出现的导航路径通常意味着缺少方法;仅用于做判断的 getter 是“Tell Don't Ask”的候选。
参考与输出:可阅读 references/patterns.md 获取重构模式与例外;对非平凡实现、审查或重构,在给出最终建议前阅读 references/details.md,其中包含详细规则、示例、坏味道与迁移说明。输出应包含:调用链、隐藏的行为、目标归属对象以及替换后的代码。
限制:资料未提供安装命令、平台支持、收费方式或具体代码示例,这些内容暂未提供。