abstraction
Abstract vs. DRY
DRY is the worst programming advice ever. It may seem easy. But, it makes changing or extending software harder. Abstraction, on the other hand, may seem difficult, but makes changing and extending software simpler. Prefer simple over easy.