IMHO hat man in großen Projekten gar keine andere Chance vernünftige Wartbarkeit zu bieten als Design Patterns einzusetzen und die auch zu dokumentieren, sei es nur mit ein paar schlichten UML Diagrammen welche die Klassen und die Patterns darin zeigt.
(Anti) Pattern welche die Wartbarkeit erschweren gibt es auch, Singleton zB., ist aber wohl bekannt und dokumentiert.
Einfach nur zu "Übungszwecken" Pattern zu verbauen kann allerdings schnell schief gehen, wenn sich die Autoren über die Vor-/Nachteile oder gar den eigentlichen Zweck des Patterns nicht klar waren.
zB. wird das Singleton gerne verwendet, um von überall auf ein Objekt zugreifen zu können.
Dafür war es nicht gedacht und genau dieser Anwendungsfall macht oft Ärger, zB. beim testen.
Soll heissen: Patterns können Probleme lösen, oder sie erzeugen.
Zusätzliche Abstraktionsschichten sind eigentlich das allheilmittel der SW Branche *g*
So sagte Butler Lampson 1972:
"All problems in computer science can be solved by another level of indirection."
IME sind richtig angewandte Interfaces&Patterns in großen Projekten ein muss, aber dann bitte richtig.