我已经冒险并在我的最新项目中使用了 Guice。总体印象不错,但我遇到了一个我无法完全理解的问题。
背景:它是一个 Java6 应用程序,通过网络接受命令,解析这些命令,然后使用它们修改一些内部数据结构。这是我们公司生产的一些硬件的模拟器。我对内部数据结构所做的更改与命令对真实硬件的影响相匹配,因此数据结构的后续查询应该反映基于先前运行的命令的硬件状态。
我遇到的问题是命令对象需要访问那些内部数据结构。这些结构是由 Guice 创建的,因为它们根据被模拟的硬件的实际实例而有所不同。命令对象不是由 Guice 创建的,因为它们本质上是愚蠢的对象:它们接受文本字符串,解析它,然后调用数据结构上的方法。
我能让这一切正常工作的唯一方法是让这些命令对象由 Guice 创建并通过注入传递数据结构。感觉真的很笨重,并且完全膨胀了数据对象的构造函数。
我在这里错过了什么?