在满足两个条件之后,我当前正在创建一个Java程序,我想在其中运行一个方法。因此,当两种情况同时发生时,应调用该方法。我能想到的唯一处理方法是在下面添加它,但这似乎并不是最佳方法。
无论是先调用method1
还是method2
,以下方法都会检查是否已满足其他条件,然后运行该方法。既然可能有更多方法要依赖两个条件,那么是否有更清晰的方法来处理它?</ p>
我的例子:
public class Test() {
private boolean condition1 = false;
private boolean condition2 = false;
public void method1(){
condition1 = true;
if(condition2){
run();
}
}
public void method2(){
condition2 = true;
if(condition1){
run();
}
}
public void run(){
//Is run when both conditions are true
}
}
答案 0 :(得分:1)
如果我要打开这段代码并必须理解它,那么如果我看到更多类似这样的内容,我的时间就会轻松得多:
public void run(){
if(condition1 && condition2){
// Now run the important code
}
}
之前对method1和method2进行的任何调用都会更改为对run()的调用。对我来说,这似乎更加直观,而不是将签出摊分到两个方法之间,这两个方法中的任何一个都可以执行run()。
答案 1 :(得分:1)
因为可能有一些方法依赖于两个以上的条件
根据上面的陈述,我想我可以假设您可能有两个以上的条件,也许有多个组合?在这种情况下,您将不想在run
方法中验证条件。
您可能有专门的方法根据需要应用所需的条件,如下所示:
public void runIfTheConditionsAreMet() {
if(condition1 && condition2) {
run();
}
}
这样,您将拥有专用的方法来检查条件并仅在必要时调用run
方法,而无需在method1
,method2
中重复代码,并且一个可以记录条件的地方(如有必要)。
您的代码看起来会更简洁,如下所示:
public void method1(){
condition1 = true;
runIfTheConditionsAreMet();
}
public void method2(){
condition2 = true;
runIfTheConditionsAreMet();
}
Ps。即使您不打算有更多条件,我也认为此解决方案将满足您的需求。
答案 2 :(得分:0)