時々、新しいアクティビティを入力するには、たとえば数秒で値を更新する必要がありますTextView
。それで、私が開始アクティビティのnsString
に書き込むためにnsを得たとしましょう。TextView
優れたパフォーマンスを保証し、「クリーンなコード」を提供するための最良のアプローチはどれですか?
バリアント1(実際に適用する方法):単一のTextView
変数「tempText」をグローバル変数として宣言し、この変数に更新するためにTextViewを割り当てます(または追加のメソッドで)。または、a)はで手順全体を実行し、onCreate()
b)はegと呼ばれるメソッドですべてを処理します。updateTextViews()
(...)
public class MyActivity extends Activity{
private TextView tempText;
public onCreate(Bundle icicle){
(...)
tempText = (TextView) findViewById(R.id.tv_1);
tempText.setText(string_1);
tempText = (TextView) findViewById(R.id.tv_2);
tempText.setText(string_2);
(...)
tempText = (TextView) findViewById(R.id.tv_n);
tempText.setText(string_n);
}
}
バリアント2:またはそれぞれのメソッドで単一のTextView
変数「tempText」を変数として宣言し、onCreate()
この変数に更新するようにTextViewを割り当てます。残りはバリアント1に類似しています。
(...)
public class MyActivity extends Activity{
public onCreate(Bundle icicle){
(...)
private TextView tempText;
tempText = (TextView) findViewById(R.id.tv_1);
tempText.setText(string_1);
tempText = (TextView) findViewById(R.id.tv_2);
tempText.setText(string_2);
(...)
tempText = (TextView) findViewById(R.id.tv_n);
tempText.setText(string_n);
}
}
バリアント3:更新するTextView
たびにグローバル変数
を宣言します。TextView
私の知る限り、これにはRAMにもっと多くのスペースが必要ですが、速度への影響についてはわかりません。onCreate()
ここでも、 (a))と別の方法(b))での取り扱いに違いはありますか?
(...)
public class MyActivity extends Activity{
private TextView tempText_1;
private TextView tempText_2;
(...)
private TextView tempText_n;
public onCreate(Bundle icicle){
(...)
tempText_1 = (TextView) findViewById(R.id.tv_1);
tempText_1.setText(string_1);
tempText_2 = (TextView) findViewById(R.id.tv_2);
tempText_2.setText(string_2);
(...)
tempText_n = (TextView) findViewById(R.id.tv_n);
tempText_n.setText(string_n);
}
}
バリアント4:またはこれを処理するそれぞれのメソッドで更新するTextView
すべての変数
を宣言します。残りはバリアント3に類似していますか?TextView
onCreate()
(...)
public class MyActivity extends Activity{
public onCreate(Bundle icicle){
(...)
private TextView tempText_1;
private TextView tempText_2;
(...)
private TextView tempText_n;
tempText_1 = (TextView) findViewById(R.id.tv_1);
tempText_1.setText(string_1);
tempText_2 = (TextView) findViewById(R.id.tv_2);
tempText_2.setText(string_2);
(...)
tempText_n = (TextView) findViewById(R.id.tv_n);
tempText_n.setText(string_n);
}
}
「最良の」方法はどれですか?バリアント1と2は、RAMに1つのメモリアドレスのみを予約してこれを使用しますが、Robert C. Martinsの「CleanCode」によると、変数は実際にはあいまいです。オプション3と4は正反対です。しかし、残りの部分については、私は他の影響をあまり意識していません。