我想对辅助注射的使用提出一些建议。
我看到的关于辅助注射的大多数例子都具有以下特征:
作为构造函数的类有一个参数,它带来一个或多个仅在运行时出现的参数,即在构造时无法确定的参数,以及在构造时已知的一个或多个参数。因此,工厂的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的正确方法,我将不胜感激。我不确定我是否以正确的方式使用辅助注射。