У меня есть ниже классов:Повторное использование условных операторов в подклассах.
public abstract class Parent {
public abstract boolean checkName(String str);
}
public class Child1 extends Parent {
public static final String NAME = "CHILD1";
@Override
public boolean checkName(String str) {
//check input validity:
if (!NAME.equals(str)) {
throw new IllegalArgumentException("some thing");
}
//...
}
}
public class Child2 extends Parent {
public static final String NAME = "CHILD2";
@Override
public boolean checkName(String str) {
//check input validity:
if (!NAME.equals(str)) {
throw new IllegalArgumentException("some thing");
}
// ...
}
}
Вы можете увидеть check input validity
частей checkName
методов в обеих классах same.I знают, что нет никакого способа, чтобы переместить эту совместную часть к абстрактной checkName
методы родителя, но есть способ избежать повторения?
Сделайте свой родительский класс не абстрактно ... и реализовать этот метод там. – River
Мне 'checkName' не похоже на то, что вы должны наследовать .. Для меня это больше похоже на метод класса утилит. – hagrawal