三次法则 (程序设计)

维基百科,自由的百科全书
跳转到: 导航, 搜索

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

在编程中,直接复制代码段是不好的习惯,因为这会使得代码更难维护,当其中一个代码片段需要变更的时候,代码维护者就必须把在这个程序中出现的所有与之相同的代码片段都进行修改,其间是很容易出差错的,而且也常会带来许多麻烦;相对的,如果代码只在一个地方出现,修改起来就容易多了。

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

正如Charles Petzold所言,

(出现)三次,又或更多?用个for(循环)吧!(Three or more? Use a for![3][4]

[编辑] 参见

[编辑] 参考

  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(英文)
个人工具
名字空间
操作
导航
帮助
工具
其他语言