Henrique, Something knows about Source, which can create a Config.
Something needs a Machine. What knows about Source and can create a Config? A Machine is transitively dependent on this creation action, and so it necessarily must be downstream of the creation of Source. What expects a Machine, or more generally, what is the creation lifecycle of Machine? -Fred On Feb 19, 5:17 pm, Henrique Prange <[email protected]> wrote: > Hi all, > > I'm facing a problem trying to use the injection mechanism between two > modules. > > I have a Module A with the following classes: > > Module A > -------- > > public class Machine { > @Inject Part part; > > } > > class Part { > @Inject Config config; > > } > > interface Config { } > > Part is not public and is a requirement to build Machines. Part has a > dependency on Config. But the Config implementation is not defined in > Module A. > > I have another Module B depending on Module A with the following classes: > > Module B > -------- > > public class ConfigImpl implements Config { > @Inject @Assisted Source source; > > } > > interface Source { } > > interface ConfigFactory { > create(Source source); > > } > > The ConfigImpl class requires a Source object to be instantiated. The > ConfigFactory must be used for this job, but the Machine class doesn't > know about the ConfigFactory interface. Also, doesn't make sense to > include the Source and ConfigFactory interfaces in Module A. > > How could I solve this DI problem? I'm sure I have to rethink the design > of those classes. So, I would appreciate if you could provide any > directions. > > Cheers, > > Henrique -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
