一次且仅一次

一次且仅一次（，简称），又稱為（不要重复你自己，简称），或一个规则，实现一次（, ）是面向对象编程中的基本原则，程序员的行事准则。旨在软件开发中，减少重复的信息。

的原则是“系统中的每一部分，都必须有一个单一的、明确的、权威的代表”，指的是（由人编写而非机器生成的）代码和测试所构成的系统，必须能够表达所应表达的内容，但是不能含有任何重复代码。当原则被成功應用時，一个系统中任何单个元素的修改都不需要與其逻辑无关的其他元素發生改變。此外，與之逻辑上相关的其他元素的變化均爲可预见的、均匀的，並如此保持同步。

 起源 
其起源已经不可考，一般认为这个原则最初由和在他们的书中提出。因为极限编程方法的创始者之一肯特·贝克总结和宣传而使其广为人知。

 與 
违反原則的解決方案通常被称为，其有多种全称，包括“”（把每個東西寫兩次）、“”（我们就是喜欢打字）或“”（浪费大家的时间）。

大致能分成4種：

 Imposed duplication：開發者認為不得不的重複
 Inadvertent duplication：開發者沒有意識到的重複
 Impatient duplication：開發者複製自己或他人的程式碼造成的重複
 Interdeveloper duplication：不同開發者間共同開發或交接造成的重複
有時，為了可讀性，或避免耦合，或過早重構，應放棄DRY原則。

 参考文献 

 的一书。
 《设计模式精解》第二版第10章。
 WikiWikiWeb关于本原则的解释 

Category:编程原则
Category:電腦民俗學