I Design Patterns sono uno strumento consolidato per risolvere problemi di design ricorrenti. Tuttavia, applicarli a testa bassa è spesso non necessario ed a volte addirittura controproducente. La necessità di adottarli infatti "emerge" lungo la strada e la loro implementazione è una conseguenza che rientra nella naturale prassi del refactoring.
Il refactoring non è un vezzo, ma una necessità fisiologica del codice che evolve.
Imparare in modo critico a riconoscere queste situazioni, accettarle, e infine ristrutturare il codice in modo efficace e senza rischi, è un'abilità che può far la differenza fra un architect ed un programmatore qualunque.