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

时间:2015-09-23 17:19:32

标签: java class oop static-methods 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. 为位于Serial.java类中的Config实例创建getter和setter?
  3. 我是否可以使用更多选项/技巧来达到目标​​。

    非常感谢任何帮助或建议。

2 个答案:

答案 0 :(得分:6)

听起来像是dependency injection

的工作

听起来你在Config中实例化了Serial

class Serial {
    private Config config = new Config();
}

而不是在Serial中创建它,将其传递给:

Config config = new Config();
Serial serial = new Serial(config);

Serial类看起来像:

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;
    }
}

这可以帮助你避免静电。

答案 1 :(得分:0)

虽然这取决于您的域名的详细信息,但我看到了两个可行的替代方案:

  • 向App Class添加一个getConfig方法(考虑到Config属于App),并使用App实例作为参数来实例化新类的对象。
  • 寻找单身人士,has many criticisms