so.*_*red 1 java refactoring reusability
我有一个我创建的大班,作为我完成作业的项目的一部分.
该类包含数据成员以及一些方法,现在我需要创建另一个(几乎)相同的类.
它几乎完全相同,因为唯一的区别是代码中出现的常数.
例如,如果原始类具有:
for (int i=0; i<8; i++) {
for (int j=0; j<8; j++) {
labels[i][j]=new Label(panel, SWT.SHADOW_OUT);
labels[i][j].setImage(empty);
}
}
Run Code Online (Sandbox Code Playgroud)
新班级应该:
for (int i=0; i<10; i++) {
for (int j=0; j<10; j++) {
labels[i][j]=new Label(panel, SWT.SHADOW_OUT);
labels[i][j].setImage(empty);
}
}
Run Code Online (Sandbox Code Playgroud)
如果原班有:
labels=new Label[8][8];
Run Code Online (Sandbox Code Playgroud)
新班级应该:
labels=new Label[10][10];
Run Code Online (Sandbox Code Playgroud)
意思是唯一的区别是10而不是8,在代码中多次.
我可以在哪里重用代码?
有没有人有一些想法?
只需使用类属性:
public class MyClass {
private final int labelsSize;
private final Label[][] labels;
public MyClass(final int labelsSize) {
this.labelsSize = labelsSize;
this.labels = new Label[labelsSize][labelsSize];
}
// ...
for (int i=0; i<labelsSize; i++) {
for (int j=0; j<labelsSize; j++) {
labels[i][j]=new Label(panel, SWT.SHADOW_OUT);
labels[i][j].setImage(empty);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
98 次 |
最近记录: |