使用Google Guice和静态方法注入Util类?

Dom*_*ier 9 java static dependency-injection guice

我想知道用google guice注入实用程序方法是否是一种好方法.

假设我们有一个转换器实用程序类:

public class UtilClass
{
  public static Result convert(Source src)
  {
    //Do conversion

    return result;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的想法是使用guice将这个实用程序注入像这样的Singleton

@Singleton
public class UtilClass
{
  public Result convert(Source src)
  {
    //Do conversion

    return result;
  }
}
Run Code Online (Sandbox Code Playgroud)

对于使用guice构建的应用程序,建议采用哪种方式?

axt*_*avt 11

这取决于您的convert()方法的性质.

如果是的话

  • 简单
  • 确定性的(即不依赖于其他参数)
  • 没有副作用
  • 不太可能改变
  • 等等

您可以将其保留为静态实用程序方法.

否则它是依赖注射的良好候选者(您可以将其重命名ConversionService为使其更清晰).