繁体   English   中英

Java:需要一些有关代码重用的建议

[英]Java: Need some advice on code reuse

我有这个大班,是我做家庭作业项目的一部分。
该类包含数据成员以及一些方法,现在我需要创建另一个(几乎) 相同的类。
它几乎是相同的,因为唯一的区别是代码中此处出现的常数。

例如,如果原始类具有:

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);
    }
}

新课程应具有:

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);
    }
}

并且如果原始类具有:

labels=new Label[8][8];

新课程应具有:

labels=new Label[10][10];

意味着唯一的区别是代码中的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);
        } 
    }
}

您可以传入该数字(8或10)作为此方法的参数或构造函数的参数。 然后将其设置为实例变量并在此代码中对其进行访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM