在处理 config.properties 的 Java Class 文件中避免使用静态方法和变量
Avoiding static methods and variables in a Java Class file that handles config.properties
我正在开发一个简单的 Java 应用程序,我创建了一个名为 Config.java 的 class 来处理应用程序属性,从而避免硬编码。
Config.java class 不是静态 class,我正在另一个 class 中创建 Config.java class 的实例] 称为 Serial.java.
主要方法位于另一个名为 App.java 的 Class 中。所以我总共有 3 Classes:
- App.java
- Serial.java (配置实例 class 作为私有变量位于此处)
- Config.java
在这个阶段,一切都很好,OOP 设计中没有任何缺陷。但是,我需要创建另一个 class,我必须在其中调用 Config.java class 中的方法。为了只有 Config.java class:
的一个实例,最好的方法是什么?
- 将 Config.java class 的方法从 public 更改为静态方法?
- 正在为位于 Serial.java class?
中的 Config 实例创建 getter 和 setter
还有没有其他的options/techniques我可以用来实现我的目标。
非常感谢任何帮助或建议。
尽管这取决于您域的详细信息,但我看到了两个可行的替代方案:
- 为你的App添加一个getConfig方法Class(考虑到Config是属于App的)并使用App实例作为参数实例化你的新对象class.
- 选择单例,has many criticisms
听起来像是 dependency injection
的工作
听起来你在 Serial
中实例化 Config
:
class Serial {
private Config config = new Config();
}
与其在 Serial
中创建它,不如将其传入:
Config config = new Config();
Serial serial = new Serial(config);
Serial
class 看起来像:
class Serial {
private Config config;
public Serial(Config config) {
this.config = config;
}
}
这样你也可以将它传递给必须从 Config
:
调用方法的其他对象
OtherObj other = new OtherObj(config);
OtherObj
定义为:
class OtherObj {
private Config config;
public OtherObj(Config config) {
this.config = config;
}
}
这很好地帮助您避免静电。
我正在开发一个简单的 Java 应用程序,我创建了一个名为 Config.java 的 class 来处理应用程序属性,从而避免硬编码。
Config.java class 不是静态 class,我正在另一个 class 中创建 Config.java class 的实例] 称为 Serial.java.
主要方法位于另一个名为 App.java 的 Class 中。所以我总共有 3 Classes:
- App.java
- Serial.java (配置实例 class 作为私有变量位于此处)
- Config.java
在这个阶段,一切都很好,OOP 设计中没有任何缺陷。但是,我需要创建另一个 class,我必须在其中调用 Config.java class 中的方法。为了只有 Config.java class:
的一个实例,最好的方法是什么?- 将 Config.java class 的方法从 public 更改为静态方法?
- 正在为位于 Serial.java class? 中的 Config 实例创建 getter 和 setter
还有没有其他的options/techniques我可以用来实现我的目标。
非常感谢任何帮助或建议。
尽管这取决于您域的详细信息,但我看到了两个可行的替代方案:
- 为你的App添加一个getConfig方法Class(考虑到Config是属于App的)并使用App实例作为参数实例化你的新对象class.
- 选择单例,has many criticisms
听起来像是 dependency injection
的工作听起来你在 Serial
中实例化 Config
:
class Serial {
private Config config = new Config();
}
与其在 Serial
中创建它,不如将其传入:
Config config = new Config();
Serial serial = new Serial(config);
Serial
class 看起来像:
class Serial {
private Config config;
public Serial(Config config) {
this.config = config;
}
}
这样你也可以将它传递给必须从 Config
:
OtherObj other = new OtherObj(config);
OtherObj
定义为:
class OtherObj {
private Config config;
public OtherObj(Config config) {
this.config = config;
}
}
这很好地帮助您避免静电。