满足多个条件时的运行方法

时间:2019-06-13 16:52:34

标签: java

在满足两个条件之后,我当前正在创建一个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
    }
}

3 个答案:

答案 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方法,而无需在method1method2中重复代码,并且一个可以记录条件的地方(如有必要)。

您的代码看起来会更简洁,如下所示:

public void method1(){
    condition1 = true;
    runIfTheConditionsAreMet();
}

public void method2(){
    condition2 = true;
    runIfTheConditionsAreMet();
}    

Ps。即使您不打算有更多条件,我也认为此解决方案将满足您的需求。

答案 2 :(得分:0)

看看CountDownLatch