Impl classes are evil
Like Martin Fowler said in TwoHardThings:
There are only two hard things in Computer Science: cache invalidation and naming things.
I've just seen too many times developers using Dependency Injection frameworks like Spring or Guice or Dagger the wrong way. Naming classes with Impl suffix is an Anti-pattern and i'm going to explain why.
Why Impl is Bad
ServiceImpl is a common practice
Many developers, including myself years ago, are using the Interface + Impl pattern to create services which are injected by their interface. This usually looks like this: