组织Singleton类和在项目中处理该类的最佳方法?

时间:2018-08-27 18:51:42

标签: java model-view-controller software-design

说我有一个设置类,我想保留为一个Singleton,以便所有其他服务/类等都可以访问同一内容。

__call__

现在说我有一个包含所有静态方法的类,该类使用此模型来处理“设置”数据。

public class Settings {
    private static Settings settings;

    public static Settings getInstance() {
        if (settings == null) {
            settings = new Settings();
        }
        return settings;
    }
    // More stuff
}

我不想将public class SettingsManager() { public static Settings initSettings() { // Pull some data from the db String foo = db.getSomeData(); return Settings.getInstance().setFoo(foo); // etc } } // Other static methods to update, etc. 中的逻辑放入SettingsManager中,因为它将不再是模型,因为它将包含查询数据库等的逻辑。

Settings保留为SettingsManager的内部类是更好的方法,还是将其设为自己的类更有意义?

我想考虑后者,但是如果是这样,我应该将Settings类放在哪里?什么包(com.myproject.models,com.myproject.somethingelse吗?)

1 个答案:

答案 0 :(得分:2)

首先,您每次调用Settings.getInstance()时都会创建一个新的Settings实例。其次,不应该将您的SettingsManager用作单例吗? 否则,每次您调用SettingsManager.initSettings()时,设置都会被更改。多久会打电话一次? (我之所以将其写为答案,是因为我没有足够的名声来发表评论。)