Software Patterns
From DesigningPatterns
- Duplication is a negative pattern; in fact, is is the anti-pattern! This applies to code, data, configuration, and documentation. Duplication leads to discrepancies which lead to inconsistent systems. Duplication also leads to more work which leads to being less productive.
- Duplicating data always has negative implications for consistency but this does not necessarily mean that it should not be done. Modern computer system design, for instance, has hierarchies of memory, with data being cached at several levels. In this case, performance needs dictated that data be stored in multiple places. If this is necessary, however, then there still only should be a single interface to any given data item.