三次法則_(程序設計)

三次法則 （ rule of three ） 是代碼重構的一條經驗法則 ， 涉及到當代碼片段出現重複時 ， 如何決定是否用一個新的子程序替代之的標準 。 三次法則的要求是 ， 允許按需直接複製粘貼代碼一次 ， 但如果相同的代碼片段重複出現三次以上的時候 ， 將其提取出來做成一個子程序就勢在必行 。 馬丁 · 福勒在 《 重構 》 一書中介紹了三次法則 ， 並認爲這一法則是Don Roberts所提出 。 在編程中 ， 由於會提高代碼維護的難度 ， 直接複製代碼段的習慣並不好 ； 具體來說 ， 當有代碼片段需要變更時 ， 代碼維護者就必須找出程序中所有與之相同的代碼片段 ， 並都進行修改 ， 但這一過程易出差錯 ， 而且也常會帶來許多麻煩 。 相對的 ， 如果代碼只在一個地方出現 ， 修改起來就容易多了 。 這一法則在代碼量 （ 即行數 ） 較少 （ 甚至只有一行 ） 的時候還有另一種形式的應用 ， 例如 ： 如果你想調用一個函數 ， 並在調用失敗的時候再嘗試調用一次 ， 那使用兩處調用亦可 ； 但若你想在放棄嘗試前至少嘗試5次 （ 注意 ， 這裏的5符合 > = 3的要求 ) ， 那就應該將其寫成循環形式 ， 使代碼中只有一個 。 誠如所言 ，