三次法则 (程序设计) 三次法则rule of three是代码重构的一条经验法则涉及到当代码片段出现重复时如何决定是否用一个新的子程序替代之的标准三次法则的要求是允许按需直接复制粘贴代码一次但如果相同的代码片段重复出现三次以上的时候将其提取出来做成一个子程序就势在必行马丁福勒在重构一书中介绍了三次法则并认为这一法则是Don Roberts所提出 在编程中由于会提高代码维护的难度直接复制代码段的习惯并不好具体来说当有代码片段需要变更时代码维护者就必须找出程序中所有与之相同的代码片段并都进行修改但这一过程易出差错而且也常会带来许多麻烦相对的如果代码只在一个地方出现修改起来就容易多了 这一法则在代码量即行数较少甚至只有一行的时候还有另一种形式的应用例如如果你想调用一个函数并在调用失败的时候再尝试调用一次那使用两处调用亦可但若你想在放弃尝试前至少尝试次注意这里的符合的要求那就应该将其写成循环形式使代码中只有一个调用位置英语Call site 诚如Charles Petzold英语Charles Petzold所言