说我有一个设置类,我想保留为一个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吗?)
答案 0 :(得分:2)
首先,您每次调用Settings.getInstance()时都会创建一个新的Settings实例。其次,不应该将您的SettingsManager用作单例吗? 否则,每次您调用SettingsManager.initSettings()时,设置都会被更改。多久会打电话一次? (我之所以将其写为答案,是因为我没有足够的名声来发表评论。)