处理程序的动态设置

时间:2012-10-07 16:11:46

标签: java save settings

我正在为游戏编写设置管理器。

基本上我正在显示该游戏的设置,只能通过控制台而不是通过游戏菜单来访问。

设置或命令具有不同的值。

例如:

dota_player_units_auto_attack有一个布尔参数,0或1

dota_health_per_vertical_marker有一个整数参数(默认为250)

我应该如何处理/保存这些设置/命令?

我的第一个想法是使用HashMap,其中设置名称为键,bool作为值,但这不适用于整数部分。我应该只在Integer中定义值并检查1和0吗?

我希望将HashMap与动态值结合使用。

欢呼声。

4 个答案:

答案 0 :(得分:1)

我建议您使用XML作为数据存储。 对于临时数据存储,您可以使用以下内容:

HashMap<String, TypeAndValuePare> = ...;

TypeAndValuePare的位置:

class TypeAndValuePare { int typeId; Object value; }

或者只需使用HashMap<String, Object>instanceof检查类型。

答案 1 :(得分:1)

Java有一个Properties类,对于实现这样的设置非常有用。

答案 2 :(得分:0)

我建议将设置存储在单独的类中,如下所示。

public class SettingsManager{

 private boolean dota_player_units_auto_attack;
 private int dota_health_per_vertical_marker;

}

并让getters读取值和setter或构造函数参数来设置值。

答案 3 :(得分:0)

如果你想保持配置的简单结构,我的建议是你不应该将boolean视为与整数不同的结构。每个配置都有自己的整数值,该应用程序应该正确响应。在您的情况下,如果变量dota_player_units_auto_attack的值为1,则执行某些操作(如果不是)。然后没有。

查看用于其他配置属性的相同逻辑。这就是为什么如果你将实施一些创新,拥有这种文件的一致结构将在未来受益。

我认为基本规则KISS(Keep It Simple Stupid)在这里有最好的设备。

在你的问题中未来你可能有一个枚举,可能的选项提供应用程序应该使用的默认值,当不能获得任何其他。这肯定会提高您的代码可读性和可靠性。