Service s = new ServiceImpl() - Why Are You Doing That?
Join the DZone community and get the full member experience.Join For Free
I see the following "best practice" over and over again in projects and reviews :
Service service = new ServiceImpl();
Basically: for every interface there is an implementation with the "Impl" ending. That's not enough: sometimes both are configured in a XML-File (probably to emphasize the importance of this pattern :-)). That is not only bloat (and the opposite of "Convention Over Configuration" idea), but it causes real damage:
- Imagine you get another implementation (thats the whole point of an interface) - how would you name it?
- It doubles the amount of artifacts - and significantly increases the "complexity"
- It is really funny to read the javadocs on the interface and the impl - another redundancy
- The navigation in the IDE is less fluent
I asked why developers are writing such code, but I didn't get a reasonable answer, except "because of mocking".
For several years however, this is no longer true. Any ideas, why are you doing that?
Opinions expressed by DZone contributors are their own.
Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL
Integration Testing Tutorial: A Comprehensive Guide With Examples And Best Practices
What to Pay Attention to as Automation Upends the Developer Experience
RAML vs. OAS: Which Is the Best API Specification for Your Project?