Unfortunately the circular dependency between device <=> device log makes this difficult.
Why does a DeviceLog need to know about a Device? On Tue, Mar 22, 2011 at 5:47 AM, ChrisS <[email protected]> wrote: > At first, sorry for my poor english, i hope its understandable. > > We have the following classes and we want to inject an > ICommunicationManager-instance to the XyzDevice ! The Problem is a > dependency in the creation order... > > public class DeviceLog { > private final IDevice device; > > public DeviceLog(IDevice device) { > this.device = device; > } > > //Methods to write log messages to a specific file for the given > device... > } > > public class XyzDevice implements IDevice { > > private final DeviceLog deviceLog; > > private final ICommunicationManager communicationManager; > > public XyzDevice() { > this.deviceLog = new DeviceLog(this); > > this.communicationManager= new > XzyCommunicationManager(deviceLog); > } > } > > _________________________________________________ > > We want to inject an ICommunicationManager implementation to the > XyzDevice-constructor, that is easy (using a Module). But how to > create the XzyCommunicationManager, it needs a DeviceLog which needs > the device instance ? We dont want to remove the final-modifiers of > our fields. > > A solution without Guice could look like this: > > public XyzDevice(ICommunicationManagerFactory factory) { > this.deviceLog = new DeviceLog(this); > > this.communicationManager= > factory.createCommunicationManager(deviceLog); > } > > Can i do this with Guice without the need of an factory ? > > -- > 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. > > -- 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.
