我应该在Helper类中使用依赖注入吗?

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

[我有一个包含各种类的包,以及一个具有各种方法的帮助程序类(正在同一包中的其他各个类使用,但是一个方法使用了包'A',而我目前正在使用构造函数注入它。

但是它是一个帮助器类,我认为它不应该具有构造函数,并且所有方法都应该是静态的,以便其他类可以像这样调用这些方法

Helper.method1();

因此,应该将依赖于程序包'A'的方法移回所有使用它的类,以避免使用依赖项注入,或者应该保持原样。

class Helper{

private final A a;

@Inject
Helper(final A a){
        this.a = a;
}

}

java dependency-injection guice
1个回答
0
投票

将方法移至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();
  }
}

哪个更整洁?之前还是之后?哪个更简单?

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