I always saw "design patterns" as a symptom of the OOP culture. The mid 2000s was the worst era for this. Everything had to be packaged as nouns and programmers saw their "profession" as being about defining taxonomies of design patterns and ideally encoding them in abstract classes.
This is what leads to almost satirical situations where a "command evaluator abstract class" is a way to express "a function"
This is what leads to almost satirical situations where a "command evaluator abstract class" is a way to express "a function"