“Design patterns should not be applied indiscriminately. Often they achieve flexibility and variability by introducing additional levels of indirection. A design pattern should only be applied when the flexibility it affords is actually needed.”
—Erich Gamma.
