@Provides书面的顺序是否重要?

问题描述 投票:1回答:1

以下示例中的provideA和provideB的顺序是否重要?应该首先编写哪种方法?如果不是从功能的角度来看,从最佳实践的角度来看是否重要?

@Singleton
@Provides
@Inject
A provideA(ExampleClass1<B> example1, ExampleClass2 example2) {
    return new A(example1, example2);
}

@Provides
@Singleton
@Inject
B provideB(A a) {
    return new B(new C(a));
}
java guice
1个回答
2
投票

No, the order of methods doesn't matter.

重要的是返回类型和注释。其余的(方法名称,方法位置和方法参数)无关紧要。

返回类型很重要,因为它是注入类型,它是你将提供的。注释很重要,因为它们告诉您必须如何配置提供程序。

该方法的顺序无关紧要,因为它不可预测,您可能会在methodA之前编写methodB,但编译器可能会决定在methodB文件中将methodA写入.class之前。它不像在C中你必须(至少)声明你在使用它们之前使用的方法。

同样,方法名称和参数(甚至......参数顺序)也无关紧要。今天你可能有一个名为foo(A a, B b)的提供者方法,明天你可能已将它改为bar(X x, Y y),它仍然会被适当的参数调用。

你应该保持你的代码可读

关于最佳实践,始终保持代码可读。因此,如果您有关于将所有提供者方法放在一起以及所有帮助方法放在一起的约定,那就这样吧。如果您的团队说要最小化声明使用之间的距离,请使用它。如果您的代码约定说按逆向字母顺序排序方法,那么这样做。

© www.soinside.com 2019 - 2024. All rights reserved.