避免处理config.properties的Java类文件中的静态方法和变量

Mar*_*lea 4 java oop static-methods class object-oriented-analysis

我正在研究一个简单的Java应用程序,并且我创建了一个名为Config.java的类来处理Application属性,从而避免了硬编码.

Config.java类不是静态类,我在另一个名为Serial.java的类中创建Config.java类的实例.

main方法位于另一个名为App.java的类中.所以我总共有3个类:

  • App.java
  • Serial.java (Config类的实例位于此处作为私有变量)
  • Config.java

在这个阶段,一切都很好,OOP设计中没有任何缺陷.但是,我需要创建另一个类,我必须从Config.java类中调用方法.为了只有一个Config.java类的实例,最好的方法是什么:

  1. 将Config.java类的方法从public更改为static?
  2. 为Config实例创建getter和setter,它位于Serial.java类中?

我是否可以使用更多选项/技术来实现我的目标.

任何帮助或建议都非常感谢.

Vin*_*igh 6

听起来像是依赖注入的工作


这听起来像你实例ConfigSerial:

class Serial {
    private Config config = new Config();
}
Run Code Online (Sandbox Code Playgroud)

而不是创建它Serial,传递给:

Config config = new Config();
Serial serial = new Serial(config);
Run Code Online (Sandbox Code Playgroud)

Serial课程如下:

class Serial {
    private Config config;

    public Serial(Config config) {
        this.config = config;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样你也可以将它传递给必须调用方法的另一个对象Config:

OtherObj other = new OtherObj(config);
Run Code Online (Sandbox Code Playgroud)

随着OtherObj定义为:

class OtherObj {
    private Config config;

    public OtherObj(Config config) {
        this.config = config;
    }
}
Run Code Online (Sandbox Code Playgroud)

这很好地帮助你避免静电.