我在抽象类 - 抽象类中有一个很大的方法doComplicateCalculation。 还有扩展AbstractClass的小类Descendant。抽象超类中的后代类的Java调用方法
我要介绍的方法doComplicateCalculation小的变化,如:
..............
if (val<0){
continue;
}
..................
的问题也更加difficulta,在内部类抽象类的大方法。 如何做? 谢谢。
我在抽象类 - 抽象类中有一个很大的方法doComplicateCalculation。 还有扩展AbstractClass的小类Descendant。抽象超类中的后代类的Java调用方法
我要介绍的方法doComplicateCalculation小的变化,如:
..............
if (val<0){
continue;
}
..................
的问题也更加difficulta,在内部类抽象类的大方法。 如何做? 谢谢。
这可能不是最好的答案;但这是我提供的最佳答案。如果有的话,它会让你思考如何解决这个问题(因为如果你要编程一段时间,那么它不会是你最后一次遇到这样的问题)。
在你的抽象类,把这个:
if (doContinue(val)){
continue;
}
然后,在你的抽象类定义的方法...
protected boolean doContinue(int val) {
// Or, put return true if you always want it to do this
return false;
}
然后,在你的具体类重写此方法,这样...
protected boolean doContinue(int val) {
return val < 0;
}
你需要分解大块的方法,以便你可以覆盖你需要的部分。
这是一个很难回答的问题。你可以做的一件事是尽可能地分解doComplicateCalculation中的算法。要添加验证可能会使每个类扩展doComplicateCalculation实现一个公共布尔值 验证
您甚至可以在整个算法之前或不同时间执行此操作。如果这是不可能的,你也可以重写这个方法(或者如果你可以分解的话,可以重写方法的一部分)。
打开抽象类并编辑它。 – Sap
我认为你需要多说。你想添加到抽象类中的doComplicateCalculation?有什么问题? –
LOL @Grrrrr。他/她很讽刺,但目前你的问题太模糊了。 –