兩段或多段程式碼看起來一樣,或者,看起來很像但只有部分差異。
通常發生多個開發者對同一個專案的不同部分做修改。由於開發者各自負責的部分不同,他們可能沒有意識到同事在其它地方寫了類似的程式碼片段,或者既有程式庫裡面已經有類似程式碼。
重複也可能以一種很隱晦的方法產生,就是以不同方法實作出同一個任務。
某些重複是有意為之的,當時程很趕的時候,經驗較少程式設計師可能會無法抗拒直接複製貼上程式碼的誘惑。某些時候,單純只是因為開發者太懶惰。
Extract Function
來建立一個新的 function 供重複的地方去呼叫。Slide Statement
把程式碼類似的地方聚集在一起,以利抽取。Pull Up Method
把程式碼抽取到父類別去。