I have written several services that I am glueing together using Guice. For example some abstract service A is described by these interfaces
Response
Request
Service
And the implementation is defined as
ResponseImpl
RequestImpl
ServiceImpl
Would it be better to bind all of the above implementations to their interface in the service’s module, or just the Service class itself?
When you seperate contract (interface) and implementation (service-impl), you usually hand only the interfaces (api-jar) to the application-clients. So they will never see (and care about) any implementing beans.
Thus, in your client code, bind the interfaces: