大多数的开发人员在讲DRY(Don'tRepeatYourself)的时候大多认为DRY是功能和代码的重复,也就是OAOO(OnceAndOnlyOnce),其实不尽然。面向对象设计提倡的OAOO,强调的是利用面向对象的继承、组合等特性尽量让一个功能点只存在一个地方,所以OAOO强调的是面向对象设计,以及功能代码方面。而DYR的范围比OAOO要广泛得多。DYR更多的是一种架构设计思想,在软件开发过程中的万事万物均可能重复,大到标准、框架、开发流程;中到组件、接口;小到功能、代码均纯存在自我重复。