Start calling bad abstraction "indirection". If I'm debugging something, I don't want to be chasing a rabbit through figuring out what calls what, and what constant is stored where, what pattern created what instance, etc...
I hated dependency injection until I escaped Javaland and discovered that you could do it with direct interface references instead of four layers of indirection.