gpt4 book ai didi

java - 在 Utility 类中注入(inject)变量是一种好习惯吗?

转载 作者:行者123 更新时间:2023-11-29 04:25:42 26 4
gpt4 key购买 nike

我有以下 Java 实用程序类。

    public class Utils {
private static Properties commonProps;

private Utils() {}

private static setCommonProps(Properties commonProps) {
Utils.commonProps = commonProps;
}

public static boolean staticMethod1() {
commonProps.get("xyz");
}

public static void staticMethod2() {
}
}

然后我们在 Spring 函数 org.springframework.beans.factory.config.MethodInvokingFactoryBean 的帮助下初始化“commonProps”。

这样的代码设计有什么问题吗?这会产生任何不良影响吗?对 Utility 类进行这样的变量初始化是一种好习惯吗?

注意:这里的“Properties commonProps”只是一个占位符。此类中需要使用的任何公共(public)成员,必须在启动期间注入(inject)。

最佳答案

总的来说,依赖注入(inject)是一件好事,因为它可以带来更易于测试的更好设计。在您的特定情况下,您必须查看您要实现的目标。

看来您正在尝试提供一个点来访问属性,并通过标准 Java Properties API 添加一些值。例如,通过提供等效的 getBoolean()

关于单点访问,您需要考虑线程问题。但是,只要您能保证在使用它的静态方法之前配置您的实用程序类,您就没问题。

关于扩展 Properties API,使用现有的库之一可能会更好,而不是承担编写和维护自己的库的成本。例如,我找到了 Apache Commons Configuration非常好。

关于java - 在 Utility 类中注入(inject)变量是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46440167/

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