一改而且干焦一改
一改而且干焦一改(英語:Once and only once,簡稱 OAOO), 閣叫做Don't repeat yourself(莫重複你家己,簡稱 DRY), 抑是一个規則,實現一改(One rule , one place)是物件導向程式設計的基本原則,程式設計師的行事準。旨佇咧軟體開發中間,減少重複的資訊。
DRY 的原則是「系統每一部份,攏必須愛有一个單一的、明確的、權威的代表」,是講(是由人來編寫蓋機器生的)代碼佮測試所構成的系統,必須會當表達所應表達的內容,但是袂當含有任何重複代碼。當 DRY 原則予成功應用的時陣,一个系統中任何單個元素的修改攏無需要佮其他的元素發生改變。此外,佮之邏輯比其他的元素的變化攏是會當預見的、齊勻,並且保持仝步。
起源
其實起源是已經袂當考,一般認為講這个原則上代先由 Andy Hunt 和 Dave Thomas 𪜶的冊 The Pragmatic Programmer 中提出。因為極限編程方法的創始者之一肯特 ・ 貝克總結佮宣傳予其實做人知。
DRY 佮 WET
違反DRY原則的解決方案通常予人號做WET,其實有足濟種全稱,包括講「Write everything twice」(共每一个物件寫兩改)、「We enjoy typing」(阮就是愛拍字)抑是「Waste everyone's time」(浪費逐家的時間)。
WET大致使分做四種:
一 .Imposed duplication:開發者認為不得不的重複二 .Inadvertent duplication:開發者無智覺的重複三 .Impatient duplication:開發者複製家己抑是講這个人的程式碼造成的重複四 .Interdeveloper duplication:無仝開發者間共同開發抑是交接造成的重複有時仔,為著可讀性,抑是避免講鋪排去,抑是早重構,應該放棄 DRY 原則。
參考文獻
- Kent Beck 的 Extreme Programming Explained 一冊。
- 《設計模式來精解》二版第十章。
- WikiWikiWeb 關於本原則的解說