特定のアクティビティでアクセスする必要がある変数が大量にある Android アプリを作成しています (基本的に、小さなゲームの「データ モデル」)。現在、それらすべてを 1 つの巨大な「コンテナー」クラスに格納しているため、アクティビティ クラスを汚染することなく簡単に参照できます。例:
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 形式では実際にはそれができません。
私は Android のリソース システムを認識していますが、変数はアプリ全体/グローバルであることを意図していないため、これには適していないようです。これらは、この特定のアクティビティの存続期間中のみ存在し、アクティビティが開始されるたびにプログラムによって生成されます。
Map<String, Object>
それらすべてを構造体に入れ、String キーを介して各変数を参照できるようにすることを考えていました。これにより、マップ上でput
orを呼び出すだけで済むため、多数のゲッターとセッターを含むコンテナー クラスを用意する必要がなくなります。get
しかし、マップから値を取得したいときはいつでも、期待される型にキャストする必要があります。私はその音が好きではありません。
誰もがより良い解決策を得ましたか? より小規模で一時的な規模で使用できる、Android のリソース システムに似たものはありますか?