三次法则 (程序设计)

✍ dations ◷ 2025-08-18 06:11:12 #计算机编程,经验法则

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

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

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

诚如Charles Petzold(英语:Charles Petzold)所言,

相关

  • 道德发展柯尔伯格道德发展阶段(或译为柯尔堡道德发展阶段,英语:Lawrence Kohlberg's stages of moral development),是美国心理学家劳伦斯·柯尔伯格用以解释道德判断发展的理论。1958年,
  • 莫加多尔剧院莫加多尔剧院(法语:Théâtre Mogador)是位于法国首都巴黎的一座剧院,成立于1913年,共有三层座位,1800个座席。在2005年,莫加多尔剧院是莫里哀戏剧奖的颁奖地点。
  • 惠誉惠誉国际(Fitch Group),是著名的三大信贷评级机构之一,总部位于纽约及伦敦。由约翰·惠誉(John Knowles Fitch)于1913年创办,1997年惠誉国际并购了另一家评级机构IBCA,2000年并购了D
  • 良性位置性眩晕良性阵发性姿势性眩晕(Benign paroxysmal positional vertigo,简称BPPV)为一种内耳诱发的疾病,患者会有重复性短暂眩晕的症状,头部移动时会感到天旋地转,甚至连就寝翻身时都会有晕
  • 木斋图书馆木斋图书馆,简称木斋馆,是南开大学图书馆的前身,是南开大学早期标志性建筑。1927年2月,热衷教育事业的实业家卢木斋捐款10万元,以资建筑南开大学图书馆。该图书馆于1927年5月兴工
  • 贝蒂·怀特贝蒂·玛丽咏·怀特(英语:Betty Marion White,1922年1月17日-),是一位美国演员,曾四次提名金球奖最佳音乐及喜剧类女主角,她亦是出演电视剧职业生涯最久的喜剧演员。除了身为电视剧
  • 德尔瑟德尔瑟(英语:Del Sur)是位于美国加利福尼亚州洛杉矶县的一个非建制地区。该地的面积和人口皆未知。德尔瑟的座标为34°41′23″N 118°17′19″W / 34.68972°N 118.28861°W /
  • 水星-宇宙神7号水星-宇宙神7号是美国国家航空航天局进行的水星计划中的一次载人任务,于1962年5月24日在卡纳维拉尔空军基地发射。航天器被命名为曙光7号,三次进入地球轨道,宇航员为斯科特·卡
  • 克里斯蒂娜·里奇克里斯蒂娜·里奇(英语:Christina Ricci,1980年2月12日-),是一名美国女演员,童星出身,出道作品为1990年的《风情妈咪俏女儿》,并在其十岁和十三岁时凭着《亚当斯一家》(1991年,)和《亚当
  • 山齐·杜特山齐·杜特 (旁遮普语:ਸੰਜੇ ਦੱਤ, 印地语:संजय दत्त;1959年7月29日-)是一名印度演员和制片人,主要演出宝莱坞电影。他是电影演员苏尼·杜特(英语:Sunil Dutt)和纳吉丝·