Have recently started using DI and selected Guice to let us do this, and liking it a lot. Dramatically improved our code structure & style, without hardly any overhead. I have hit a problem however and could do with some guidance. I am expecting that I have not read the Guice docs correctly, am following very bad practice (!) or am re- inventing the wheel.
Does anyone else find that the closer your get the heart of your application, the more you need to use classes that implement more that one interface. For example you want a CashMachine that is a Runnable, a CashDispenser and a CashDepositBox. If I use DI, via Guice, I am encouraged to obviously get and reference all my objects as the interfacve - which, by my book, is a very good practice. I want to do this. However, if I create my CashMachine as a Runnable, it means I cannot see it as a CashDispenser, but if I create it as CashDispense I cannot see it as CashDepositBox. I know that in Guice if you have a singleton you can bind it to multiple interfaces, but ONLY if it is a Singleton i.e. once the object is created you will keep getting a reference to the same one again and again. But what if you want to create an object on demand but still retain these three interfaces onto the same object? ???? What is the best practice here? If people say "Don't use objects that implement multiple interfaces!" then will be disappointed - seems like a lot to give up in order to use DI. If the answer is to refer to your object as a CashMachine, I will be even more disappointed as this very non-DI!! Thank you in advance for any thoughts - and hope someone can help me out. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
