In answer to this question Java Interfaces/Implementation naming convention author suggested
So when you have an situation where you have an Interface and a single Implementation that is not uniquely specialized from the Interface you probably don't need the Interface.
But what to do if you need to have interface for that single concrete class implementing interface so that you can:
- Code to interface
- Be able to mock object in unit tests
How to deal with this situation?