Don't repeat yourself
DRY はアプリケーションに必要な情報(通例は設定情報)に対して言及しているという点で Once and Only Once (OAOO) 原則とは区別される。比較すると OAOO はコードの機能的な振る舞いについて言及しており、構造体やオブジェクト指向言語における継承の実現が必要な理由となっている。
たとえば、DRY はファイルの集合の場所はアプリケーションの中で一箇所に格納されるべきと主張するが、これらのファイルからデータを取り出す処理をアプリケーションの異なる箇所で記述する回数については寛容である。OAOO の原則は、これに対して、ファイルからデータを取得するコードは一度のみ書かれるよう求めるが、アプリケーション内でこれらのファイルを配置する場所が何箇所あるかについては寛容である。
さらに混乱を招きやすいのは、アプリケーションの中でオブジェクトは変数として格納され、オブジェクトは情報の一部として見られる点であり、それゆえに DRY はオブジェクトに対して適用される(インスタンスを一つだけ持つ) のに対して、OAOO はクラスに対して適用される。(アプリケーション内で、オブジェクトのクラステンプレートに同じ目的を持つほかのコードがない)という点である。