三次法则 (程序设计)

✍ dations ◷ 2025-09-09 16:52:58 #计算机编程,经验法则

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

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

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

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

相关

  • 乔治·华盛顿乔治·华盛顿(英语:George Washington,1732年2月22日-1799年12月14日),美国国父,1775年至1783年美国独立战争时的殖民地军总司令,1789年成为美国第一任总统(其同时也成为全世界第一位
  • 成康之治成康之治(约公元前1043年-约公元前996年)是指中国西周初周成王、周康王的治世。在这段时间,刑具四十年不须使用。其中在周成王在位初年,因成王年幼,主要是周公摄政,平定了三监之乱
  • 作七传统宗教仪式:神明秘密社会:做七,又称作七、作旬、烧七、斋七、理七,是东亚的丧殡习俗,指人死后每隔七天举行法事一次,七天为一期,最多为七期,七七四十九天才结束。道教称之为七七追
  • 三明治板块南桑威奇板块,或南桑威奇微板块(英语:South Sandwich Plate),是一个微板块,位于南大西洋和南冰洋的交界处。它呈弧形,弧顶指向东方,东界以消减带和南美洲板块相邻,南界亦以消减带和南
  • 西北西北英格兰(英语:North West England),是英国英格兰下辖的9个次级行政区之一,主要以重工业城市为主,包括曼彻斯特、利物浦等等,濒临西面的大西洋。工业革命时代主要以制造业为主,同
  • 风轮菜属风轮菜属(学名:)是唇形科下的一个属,为多年生草本植物。该属共有约20种,分布于欧洲、中亚及亚洲东部。
  • 马戏杂耍嘉年华马戏杂耍嘉年华为波兰卢布林市当地的艺文活动,宗旨为发扬现代杂耍及马戏表演。活动的主办单位为卢布林市长办公室及文化工作坊(波兰语:Warsztaty Kultury),首次举办时间则为2008
  • 三合面三合面是指用文火炒好的面粉加入红葱头(油炸)、白糖、芝麻末并搅拌均匀的食物。三合面的制作:将面粉放入炒锅中文火慢慢烘焙,烘焙到微黄。在加入用猪油炸好的红葱头以及芝麻末,拌
  • 高熙喆高熙喆(1854年-1938年),字仲瑊,一字亦愚。山东省兖州府滕县城关镇(今属枣庄市滕州市)人,原籍浙江省绍兴府会稽县。清末民初政治人物、经学家、史学家、书法家。自幼熟读经史,入滕县道
  • 东革阿里东革阿里-Tongkat Ali(马来语), 学名 是生长于马来西亚, 印度尼西亚, 在较小程度上泰国,越南,老挝和印度等地的雌雄异株长绿树,有"马来西亚人参"的美名。 东革阿里是生长在东南