時々、新しいアクティビティを入力するには、たとえば数秒で値を更新する必要があります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に類似していますか?TextViewonCreate()
(...)
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は正反対です。しかし、残りの部分については、私は他の影響をあまり意識していません。