This is very much a Java phenomenon. These things do have value .. when correctly applied. But sometimes it's like seeing someone make a gadget with fifty different types of bolts rather than one or two simply because they want to use all the bits of their socket set.
No it’s from a book called design patterns. It forever influenced a huge number of American programmers to think about programming in a very specific way following very specific patterns.
I’m working for a company that’s doing things in typescript using IOC and dependency injection everywhere. It pervades the minds of Americans such that they walk and talk like a parrot parroting that book.
What Americans don’t realize is that those patterns are arbitrarily made up. It’s as arbitrary and localized as the Japanese having to bow for politeness. There’s nothing intrinsically hugely beneficial for following this style. In fact, modern languages push against it. Languages like golang and rust are examples. Even JavaScript was an example although recent es6 syntax makes patterns more easier now
I think you will find most Java programmers were using these patterns before they came across the book. The language naturally leads you in that direction. The book just put a name on them.