Vielleicht bin ich nur blind, aber ich sehe nicht, wie Guice verwenden (nur mit ihm starten), um den new
Aufruf in dieser Methode zu ersetzen:Wie wird Google Guice zum Erstellen von Objekten verwendet, für die Parameter erforderlich sind?
public boolean myMethod(String anInputValue) {
Processor proc = new ProcessorImpl(anInputValue);
return proc.isEnabled();
}
Zum Testen könnte es eine andere Implementierung des Prozessors sein Daher möchte ich den Aufruf new
vermeiden und dabei die Abhängigkeit von der Implementierung beseitigen.
Wenn meine Klasse sich nur an eine Instanz von Processor erinnern könnte, könnte ich sie über den Konstruktor einlesen, aber da die Prozessoren so konzipiert sind, dass sie unveränderlich sind, brauche ich jedes Mal eine neue.
Wie würde ich gehen und das mit Guice (2.0) erreichen?
Yup aussehen wird, ist AssistedInject die beste Lösung. http://code.google.com/p/google-guice/wiki/AssistedInject –
Hier ist ein kurzer Beitrag, den ich darüber geschrieben habe. Assisted Injection ist ein wunderbares Werkzeug für einige Probleme, und ich glaube, dass es nicht so bekannt ist. Gute Arbeit, die das Wissen verbreitet. http://ripper234.com/p/assisted-injection-in-guice/ – ripper234
Wo kann ich die .jar für assistierte Injektion bekommen? Es ist nicht als Download unter http://code.google.com/p/google-guice/downloads/list verfügbar. –