[我有一个包含各种类的包,以及一个具有各种方法的帮助程序类(正在同一包中的其他各个类使用,但是一个方法使用了包'A',而我目前正在使用构造函数注入它。
但是它是一个帮助器类,我认为它不应该具有构造函数,并且所有方法都应该是静态的,以便其他类可以像这样调用这些方法
Helper.method1();
因此,应该将依赖于程序包'A'的方法移回所有使用它的类,以避免使用依赖项注入,或者应该保持原样。
class Helper{
private final A a;
@Inject
Helper(final A a){
this.a = a;
}
}
A
并注入A
而不是Helper
您已经在某些地方注入了Helper
。它唯一的依赖性是A
。由于它是一个帮助程序,因此众所周知您需要使用A
,因此重构Helper
类以将特定方法移至A
并将Helper
依赖项替换为A
的依赖项:
A.java
class A {
void doSomethingSmall() {
//
}
}
Helper.java
class Helper {
@Inject A a;
void doSomethingBig() {
a.doSomethingSmall();
}
}
Usage.java
class Usage {
@Inject Helper helper;
void doSomethingBigger() {
helper.doSomethingBig();
}
}
A.java
class A {
void doSomethingSmall() {
//
}
void doSomethingBig() {
a.doSomethingSmall();
}
}
Usage.java
class Usage {
@Inject A a;
void doSomethingBigger() {
a.doSomethingBig();
}
}
哪个更整洁?之前还是之后?哪个更简单?