作为一名自学成才的编码员,我有一个关于编码最佳实践的问题。我用两种不同的方式编写了同一个程序,我希望有人指导我选择哪种方式?这可能来自 CPU 开销或 RAM 使用情况,或者仅仅是编码最佳实践的角度。我很欣赏这个问题可能有很多答案或理论,我知道这不是 Stack Overflow 的目的,但对我来说这是一个 Stack Overflow 问题,因为我的编码风格给我带来了一些问题,而我没有知道我应该坚持还是采用哪种方法。
这两个示例都有一个简单的 XML 布局文件,其中包含两个按钮和两个可更新的文本视图(此处未包括)。
示例 1.(我目前倾向于编码的方式)
public class MainActivity extends Activity {
Button button1Add, button2Add;
TextView text1Display, text2Display;
int count1, count2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initilizeButtons();
setupListeners();
}
public void initilizeButtons() {
button1Add = (Button) findViewById(R.id.button1);
button2Add = (Button) findViewById(R.id.button2);
text1Display = (TextView) findViewById(R.id.textView1);
text2Display = (TextView) findViewById(R.id.textView2);
count1 = Integer.parseInt(text1Display.getText().toString());
count2 = Integer.parseInt(text2Display.getText().toString());
}
public void setupListeners() {
button1Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
count1++;
text1Display.setText(String.valueOf(count1));
}
});
button2Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
count2++;
text2Display.setText(String.valueOf(count2));
}
});
}
}
示例 2.(我认为我应该编码的方式?)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initilizeButtons();
}
public void initilizeButtons() {
Button button1Add = (Button) findViewById(R.id.button1);
Button button2Add = (Button) findViewById(R.id.button2);
button1Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView text1Display = (TextView) findViewById(R.id.textView1);
int headCount = Integer.parseInt(text1Display.getText().toString());
headCount++;
text1Display.setText(String.valueOf(headCount));
}
});
button2Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView text2Display = (TextView) findViewById(R.id.textView2);
int bodyCount = Integer.parseInt(text2Display.getText().toString());
bodyCount++;
text2Display.setText(String.valueOf(bodyCount));
}
});
}
}
在示例 1 中,我假设这会更快(即更少的 CPU),因为我已经声明了我的变量并在整个程序中添加它们。我在这里担心RAM的使用。
在示例 2 中,我认为这将导致更多的 CPU 使用,因为它必须在每次使用它们时重新声明所有变量,但也许它使用更少的 RAM?
这些只是示例,我相信它们本身不会对 CPU 或 RAM 开销造成太大影响。我会将您提供的答案中的信息应用于我的一般编码实践。