读完这篇文章后,我尝试了一下Google Guice:http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/
但有一件事我不明白:当你使用Guice的@Singleton赋值时,注入会注入相同的实例,但只针对一个Injector。
如果我在其他地方创建了另一个Injector,@Singletion将无法工作(如文档中所述)。
因此,我将不得不在代码中的任何地方传递注入器实例,或者使其在单例中可用。
这正是我想要避免的。
我们如何管理injectorS以使每次返回相同的实例成为可能?
谢谢。
发布于 2012-07-23 18:54:18
使用Guice的代码通常不需要访问注入器本身:如果需要构造多个依赖项,对象将接收它们的依赖项或依赖项的Provider<T>。
通常,对象只有在具有依赖关系但本身不是由注入器创建的情况下才需要注入器(因此它们不能被注入依赖项)。如果您在任何地方都使用Guice,那么您可能只需要在应用程序启动时执行此操作。如果您只将Guice用于项目的一部分,那么注入器将成为一个单独的单例,它代理您现在通过它访问的所有其他单例。
请注意,注释为@Singleton的类仍然是单例对象,尽管没有一些与非注入单例相关的负担。你仍然应该尽量避免过多地依赖它们。
https://stackoverflow.com/questions/11610957
复制相似问题