fbpx
维基百科

三次法则 (程序设计)

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

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

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

诚如Charles Petzold英语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(英文)

三次法则, 程序设计, 此条目的主題是编程的三次法则, 关于c, 编程的三法则, 請見, 三法則, 三次法则, rule, three, 是代码重构的一条经验法则, 涉及到当代码片段出现重复时, 如何决定是否用一个新的子程序替代之的标准, 三次法则的要求是, 允许按需直接复制粘贴代码一次, 但如果相同的代码片段重复出现三次以上的时候, 将其提取出来做成一个子程序就势在必行, 马丁, 福勒在, 重构, 一书中介绍了三次法则, 并认为这一法则是don, roberts所提出, 在编程中, 由于会提高代码维护的难度, 直. 此条目的主題是编程的三次法则 关于C 编程的三法则 請見 三法則 三次法则 rule of three 是代码重构的一条经验法则 涉及到当代码片段出现重复时 如何决定是否用一个新的子程序替代之的标准 三次法则的要求是 允许按需直接复制粘贴代码一次 但如果相同的代码片段重复出现三次以上的时候 将其提取出来做成一个子程序就势在必行 马丁 福勒在 重构 一书中介绍了三次法则 1 并认为这一法则是Don Roberts所提出 2 在编程中 由于会提高代码维护的难度 直接复制代码段的习惯并不好 具体来说 当有代码片段需要变更时 代码维护者就必须找出程序中所有与之相同的代码片段 并都进行修改 但这一过程易出差错 而且也常会带来许多麻烦 相对的 如果代码只在一个地方出现 修改起来就容易多了 这一法则在代码量 即行数 较少 甚至只有一行 的时候还有另一种形式的应用 例如 如果你想调用一个函数 并在调用失败的时候再尝试调用一次 那使用两处调用亦可 但若你想在放弃尝试前至少尝试5次 注意 这里的5符合 gt 3的要求 那就应该将其写成循环形式 使代码中只有一个调用位置 英语 Call site 诚如Charles Petzold 英语 Charles Petzold 所言 出现 三次 又或更多 用个for 循环 吧 Three or more Use a for 3 4 参见 编辑一次且仅一次 面向对象编程 参考 编辑 重构 改善既有代码的设计 Refactoring Improving the Design of Existing Code 马丁 福勒著 ISBN 978 0201485677 Refactoring Patterns 第一部分 永久失效連結 IBM DeveloperWorks 中文 Page Transitions in Windows Phone 7 Charles Petzold 英文 Does Visual Studio Rot the Mind Charles Petzold 英文 取自 https zh wikipedia org w index php title 三次法则 程序设计 amp oldid 46969671, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。