我有三种方法可以按字段过滤一组设备。
public void filtrateByType(Device[] devices, String type) {
if (devices == null) {
return;
}
for (int i = 0; i < devices.length; i++) {
if (devices[i] == null) {
continue;
}
if (devices[i].getType() == null && type == null) {
continue;
} else if (devices[i].getType() == null) {
devices[i] = null;
continue;
}
if (!devices[i].getType().equals(type)) {
devices[i] = null;
}
}
}
其他方法类似。唯一的区别是调用另一个应用过滤的字段的 getter。例如,有一个对getModel()instead的调用getType()。这是否违反了 DRY 原则,我该如何更改它以使其不会(没有泛型)?
PS 这是一个家庭作业,不幸的是我们还没有使用泛型。我也无法更改方法的签名。我有一个线索,我可以使用一种方法创建内部类,该方法将调用所需的 getter 并返回一个值。所以,我需要把我所有的检查都放在这个方法中,但我真的不明白我的逻辑是怎么做的(尤其是“继续”)。
SMILET
catspeake
炎炎设计
相关分类