当前位置: 首页 > 面试题库 >

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

段坚
2023-03-14
问题内容

我想知道用google guice注入实用程序方法是否是一种好的样式。

假设我们有一个Converter Utility类:

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

    return result;
  }
}

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

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

    return result;
  }
}

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


问题答案:

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

如果有的话

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

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

否则,它是依赖注入的一个很好的候选者(您可以对其重命名ConversionService以使其更加清晰)。



 类似资料:
  • 我有一个包使用spring依赖注入进行单元测试,使用下面的代码。 我需要在util类中添加一个静态方法,并需要对其进行模拟,以防止现有的单元测试失败。我尝试使用PowerMock,但得到了不同的错误,如下面的错误。

  • 问题内容: 当我需要一堆无状态实用程序方法时,Java 8中的最佳实践是什么。有一个 不会 被任何人(即and)实现的接口是正确的吗?还是采用旧方法-具有并使用私有构造函数|| 更好?枚举? 问题答案: 接口的主要目的是提供一种类型和对该类型的操作词汇(方法)。它们之所以有用且灵活,是因为它们允许多个实现,并且实际上,它们旨在允许在类层次结构中不相关的实现。 问题问, 具有任何人都不会实现的接口是

  • 我是Guice注入的新手。如何将类注入到将在静态方法中使用的静态变量中? 这是我想在 doLocalize() 方法中使用注入的变量 b 的类。 这是我想要对其执行guice注入的模块类。 注意:我不能改变我的模块和B类,因为它来自另一个依赖项。 我想在我的A类中注入的类

  • 我有一组仅包含静态方法和单个私有构造函数的API类,因此它们无法实例化。但是,我希望第三方开发人员能够修改API的行为以满足他们的需求。 这是我目前为止的解决方案(通过静态setter方法进行依赖注入)。这是开发人员将使用的公共API类。如您所见,它依赖于< code>StaticApiImpl。 这是我自己编码的默认API实现。 这是第三方可能编写的默认实现的假设扩展版本: 开发者只需在插件初始

  • 我正在尝试为以下类创建单元测试: 我当前的测试类是: 我可以模拟类的私有字段,但似乎找不到模拟静态方法的方法。这是可能的还是我只是在浪费时间? 我使用Mockito1.10.19和JUnit4进行测试。 我是一个新的对象嘲弄单元测试,所以如果我有什么大错特错,请告诉我! 多谢了。

  • 问题内容: 我知道这会起作用: 但是如果我想打电话 我找到一些工作方法, 还有其他方法吗?我不知道这样做是否正确。您在JavaScript代码中使用类方法还是静态方法? 问题答案: 首先,请记住JavaScript主要是一种原型语言,而不是基于类的语言1。不是一个类,而是一个函数,这是一个对象。您可以使用关键字从该函数实例化一个对象,该关键字将允许您使用标准OOP语言创建类似于类的内容。 我建议大