我正在编写一个 Android 应用程序,其中有大量变量需要在特定活动中访问(基本上,是一种小型游戏的“数据模型”)。目前,我将它们全部存储在一个巨大的“容器”类中,这样我就可以轻松地引用它们而不会污染我的活动类。例子:
public class Model
{
private int a;
private String b;
private float c;
...
public int getA()
{
return a;
}
public void setA(int a)
{
this.a = a;
}
public String getB()
{
return b;
}
public void setB(String b)
{
this.b = b;
}
public float getC()
{
return c;
}
public void setC(float c)
{
this.c = c;
}
...
}
如您所见,它们属于不同的类型,并且都有 getter 和 setter。但是像这样存储它们变得很麻烦。我还想迭代变量组,但是使用这种扁平的 getter/setter 格式,我真的不能这样做。
我知道 Android 的资源系统,但它似乎不适合这个,因为变量并不意味着是应用程序范围/全局的。它们仅在此特定活动的生命周期内存在,并且在每次活动开始时以编程方式生成。
我正在考虑将它们全部放入一个Map<String, Object>
结构中,在那里我可以通过字符串键引用每个变量。这将消除对具有大量 getter 和 setter 的容器类的需要,因为我可以在地图上调用put
或。get
但是,每当我想从地图中获取值时,我都必须转换为预期的类型。我不喜欢那样的声音。
有人有更好的解决方案吗?有没有类似于 Android 的资源系统可以在更小、更临时的规模上使用?