三次法则 (程序设计)

三次法则(rule of three)是代码重构的一条经验法则,涉及到当代码片段出现重复时,如何决定是否用一个新的子程序替代之的标准。三次法则的要求是,允许按需直接复制粘贴代码一次,但如果相同的代码片段重复出现三次以上的时候,将其提取出来做成一个子程序就势在必行。马丁·福勒在《重构》一书中介绍了三次法则[1],并认为这一法则是Don Roberts所提出。[2]

在编程中,由于会提高代码维护的难度,直接复制代码段的习惯并不好;具体来说,当有代码片段需要变更时,代码维护者就必须找出程序中所有与之相同的代码片段,并都进行修改,但这一过程易出差错,而且也常会带来许多麻烦。相对的,如果代码只在一个地方出现,修改起来就容易多了。

这一法则在代码量(即行数)较少(甚至只有一行)的时候还有另一种形式的应用,例如:如果你想调用一个函数,并在调用失败的时候再尝试调用一次,那使用两处调用亦可;但若你想在放弃尝试前至少尝试5次(注意,这里的5符合>=3的要求),那就应该将其写成循环形式,使代码中只有一个调用位置

诚如Charles Petzold所言,

参见

参考

  1. 《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code), 马丁·福勒著, ISBN 978-0201485677
  2. Refactoring Patterns: 第一部分, IBM DeveloperWorks(中文)
  3. Page Transitions in Windows Phone 7, Charles Petzold(英文)
  4. Does Visual Studio Rot the Mind?, Charles Petzold(英文)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.