gpt4 book ai didi

Java utils 类,静态方法与注入(inject) utils 类

转载 作者:行者123 更新时间:2023-11-30 07:47:16 26 4
gpt4 key购买 nike

你们如何创建实用程序类?有没有标准的方法?

就像标题说的那样,你可以有类似的东西:

public class Utils {

public static method1(){...}

public static method2(){...}
...
}

并通过调用 Utils.method1() 来使用它,但是那样的话,当您为使用此 utils 类的类编写单元测试时,您不能模拟静态方法,因此如果它们有错误单元测试将失败。

或者,您可以使用这些实用程序在类的构造函数中提供一个实用程序类的实例,这样您就可以在单元测试中模拟它,但对我来说,为每个实用程序类的实例提供一个实用程序类的实例看起来很尴尬使用它的类,并且通常必须创建一个 utils 类的实例。我的意思是,如果我们的类 A 使用 Utils 类中的方法,我们可以这样做:A a = new A(new Utils());

有没有一种方法可以同时实现这两者?或者至少是行业标准的东西?还是其他我没想到的方式?

最佳答案

实用程序类应该是 API 的一部分并且经过良好测试。如果你开始考虑那个级别的依赖注入(inject)和模拟,你就已经迷路了。应该非常小心地进行模拟。

备选方案:

  • 默认接口(interface)方法实现(自 Java 8 起)
  • 装饰类实例并提供实用功能的适配器。

关于Java utils 类,静态方法与注入(inject) utils 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49959691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com