Ich schreibe eine Android-App, wo ich eine Menge Variablen habe, auf die ich in einer bestimmten Aktivität zugreifen muss (im Grunde ein "Datenmodell" für ein kleines Spiel). Momentan speichere ich sie alle in einer riesigen "Container" -Klasse, so dass ich mich leicht darauf beziehen kann, ohne meine Aktivitätsklasse zu belasten. Beispiel:Gibt es etwas Ähnliches wie Androids Ressourcensystem in kleinerem Maßstab?
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;
}
...
}
Wie Sie sehen können, sind sie von verschiedenen Typen, und alle haben Getter und Setter. Aber es wird mühsam, sie so zu lagern. Ich möchte auch über Gruppen der Variablen iterieren, aber mit diesem flachen Getter/Setter-Format kann ich das nicht wirklich machen.
Ich kenne Android Resource System, aber es scheint nicht geeignet dafür, weil die Variablen nicht App-weit/global sein sollen. Sie existieren nur für das Leben dieser bestimmten Aktivität und werden bei jedem Start der Aktivität programmgesteuert generiert.
Ich dachte daran, sie alle in eine Map<String, Object>
Struktur zu setzen, wo ich jede Variable über einen String-Schlüssel referenzieren könnte. Dies würde die Notwendigkeit beseitigen, eine Container-Klasse mit vielen Gettern und Setter zu haben, da ich einfach put
oder get
auf der Karte aufrufen könnte. Aber dann, wenn ich einen Wert von der Karte erhalten möchte, müsste ich auf den erwarteten Typ umwandeln. Ich mag den Klang davon nicht.
Wer hat eine bessere Lösung? Gibt es etwas Ähnliches wie das Ressourcensystem von Android, das auf kleinerer, temporärerer Ebene verwendet werden kann?
Wenn Sie die Klasse machen und Variablen statisch Sie die Variablen überall zugreifen können. Nicht sicher, ob du das meinst. – Tooroop