【发布时间】:2011-03-12 23:46:15
【问题描述】:
我试图理解依赖注入但并没有完全理解它,除了我设法理解它使理解别人的代码变得困难。 :'(
无论如何,我不确定如何简要描述我的问题,但我会尝试。我目前是一个 Java 项目的唯一编码员,该项目由数十名孤独的人在大约六年的时间里工作。它大量使用了 Google 的 Guice 库。我应该采用一些现有的代码并以不同的方式实现它;具体来说,使用现有的方法进行密码验证,而不是将其应用于JMenu中的每个JMenuItem,而是将其应用于整个JMenu,这样如果输入错误密码或未输入密码,则禁用所有JMenuItem。如果密码错误就不会发生这种情况,这让我相信问题出在 if 语句中,它本身就是一长串依赖项:if (!ViewScanApp.getApplication().getHistoryManager().isAuthenticated())
我通过这个回溯,发现HistoryManager 类是一个接口,我的路径似乎死了;那里没有代码,也没有引用任何其他类。我通过随机探索项目中的 100 多个类找到了路径的尽头,但我似乎无法将它们连接起来。我找不到在此堆栈的另一端可以找到的第一个类 AccessManagerImpl 被调用的位置。
我可以使用可能适用于这种情况的依赖注入的解释。非常感谢!
【问题讨论】:
-
“依赖注入”就像“新”一样,只是它是通过魔法发生的,而不是您必须输入“新”...
标签: java netbeans dependency-injection reverse-engineering guice