我有这个类:
public abstract class AbstractIncomingCall {
/*
class properties
*/
public void changeStatus(/*some parameters*/){
//store parameters in class properties
isValid();
}
protected abstract boolean isValid();
}
...这个类扩展了它:
public class IncomingCallImpl extends AbstractIncomingCall{
//I override the parent's method
public void changeStatus(/*same parameters as parent's method*/) {
super.changeStatus(/*same parameters as parent's method*/);
//do something interesting
}
protected boolean isValid() throws StatusChangeNotOccurredException {
//implement my validation algorithm
}
我希望实现的目标是,每当调用changeStatus(/*一些参数*/)时,都会调用isValid()方法;请注意,isValid()方法仅在具体类中实现,并且它使用从父类继承的类属性。 除了调用super之外,我是否有其他方法来确保isValid()被调用? 我非常不喜欢到处传递参数的事实,我认为我正在完全错误的方向上前进,有更清晰的方法来实现这一点。 我想在抽象类中保留“isValid()调用逻辑”,因为每个调用都需要验证,我不能依靠将来记住这一点:P
提前感谢:]