Honestly, I think overuse has become it's own problem.
Design patterns are not a suggestion, you shouldn't strive to use them. Devs shouldn't start a project and think 'what design patterns will I use here'. They exist so that you can identify what you are already doing and avoid past mistakes that others have already made (hell, the GoF book states this in the intro). Nobody should go into a project thinking 'I will use the singleton pattern for this', but if halfway in you realize that your system fits that pattern, it's there for you.
Design patterns are not a suggestion, you shouldn't strive to use them. Devs shouldn't start a project and think 'what design patterns will I use here'. They exist so that you can identify what you are already doing and avoid past mistakes that others have already made (hell, the GoF book states this in the intro). Nobody should go into a project thinking 'I will use the singleton pattern for this', but if halfway in you realize that your system fits that pattern, it's there for you.