An antipattern I keep seeing people use is ExtendToConfigure?
Where instead of creating and configuring an instance of a class to perform actions they require, or even writing a function which will spit out an instance of that class configured to perform the actions they require, people subclass the existing class with no overridden or extended functionality, just setting of perfectly normal configuration options available on the original class.
This results in loads of fundamentally identical classes. Just with constructors that each perform a little bit of configuration.
It drives me mad!