Guice辅助注射

时间:2014-08-21 15:09:39

标签: guice assisted-inject

我想对辅助注射的使用提出一些建议。

我看到的关于辅助注射的大多数例子都具有以下特征:

作为构造函数的类有一个参数,它带来一个或多个仅在运行时出现的参数,即在构造时无法确定的参数,以及在构造时已知的一个或多个参数。因此,工厂的create方法只接受在运行时提供的参数。

在我的情况下,90%的情况下,我只有运行时参数。意思是,我有一个需要B类的A类,但是B只接受A可以提供的参数。因此,B的构造函数中只有@assister参数。

我想知道这是否是辅助注射的正确用法。

  

我最后一个例子是以下内容。 A需要返回B级   因此,这是一个dataStructure(有时称为DTO或值对象)   我传给A必要的工厂,以便在计算之后   可以返回B.Here B,就像一个容器类。我的情况很少   该

...

  

另一种情况是服务A需要B服务,但B   服务取决于创建时A的参数。在哪里   从A他自己注入A的参数,然而,A做了一些   在用它创建B之前初始化它

特别是在最后一种情况下,我的目标是在A 之外进行“A的内部初始化”。

  

想法是在每个包中都有特定的创建模块   外部化该包的“内部创建服务”?

我这样说是因为我一直认为,创建一个与将要使用它的类/服务无关的东西对我来说听起来很奇怪。 我并不是说我不坚持将用法与建筑分开,但我宁愿在一个封闭的类中做这样的事情。不是在一个完全无关的地方。

根据我目前的理解,每个包都应该提供它的创建模块,它集中创建它包含的对象,特别是如果使用私有构造函数。

到目前为止,我已经使用过Guice了一段时间,但是最近我才更加关注分离模块,并将模块与其包装保持一致。我用来在模块之间做继承来链接对象的创建,最后有一个模块从头开始创建所有东西。这是错的吗?

就是这样。关于使用Guice的正确方法,我将不胜感激。我不确定我是否以正确的方式使用辅助注射。

0 个答案:

没有答案