Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 满足多个条件时运行方法_Java - Fatal编程技术网

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

Java 满足多个条件时运行方法,java,Java,我目前正在创建一个java程序,在满足两个条件后,我想在其中运行一个方法。因此,当这两种情况都发生时,应该调用该方法。我能想到的处理它的唯一方法是我在下面添加它,但它似乎不是这样做的最佳方式 在这里,无论是先调用method1还是method2,下面的方法都会检查其他条件是否已经满足,然后运行该方法。既然可能有比两个更依赖于更多条件的方法,那么有没有更清晰的方法来处理它呢 我的例子是: public class Test() { private boolean condition1 =

我目前正在创建一个java程序,在满足两个条件后,我想在其中运行一个方法。因此,当这两种情况都发生时,应该调用该方法。我能想到的处理它的唯一方法是我在下面添加它,但它似乎不是这样做的最佳方式

在这里,无论是先调用
method1
还是
method2
,下面的方法都会检查其他条件是否已经满足,然后运行该方法。既然可能有比两个更依赖于更多条件的方法,那么有没有更清晰的方法来处理它呢

我的例子是:

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
    }
}

如果我打开这段代码,并且必须理解它,如果我看到更像这样的东西,我会轻松得多:

public void run(){
    if(condition1 && condition2){
        // Now run the important code
    }
}

之前对method1和method2进行的任何调用都将更改为调用run()。对我来说,这似乎更直观,而不是在两个方法之间分散签出,其中任何一个都可能执行run()

如果我打开这段代码,并且必须理解它,如果我看到类似这样的东西,我会轻松得多:

public void run(){
    if(condition1 && condition2){
        // Now run the important code
    }
}
之前对method1和method2进行的任何调用都将更改为调用run()。对我来说,这似乎更直观,而不是在两个方法之间分散签出,其中任何一个都可能执行run()

因为可能有一些方法依赖于更多的条件,而不是两个条件

根据上面的陈述,我想我可以假设你可能有两个以上的条件,也许还有多个组合?在这种情况下,您不想验证
run
方法中的条件

您可以有一个专用的方法,根据需要应用所需的条件,如下所示:

public void runIfTheConditionsAreMet() {
    if(condition1 && condition2) {
        run();
    }
}
这样,您将有一个专门的方法来检查条件,并仅在必要时调用
run
方法,而无需在
method1
method2
中重复代码,并且您将有一个地方可以记录条件(如果需要)

您的代码看起来会更干净一些,如下所示:

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

public void method2(){
    condition2 = true;
    runIfTheConditionsAreMet();
}    
注:即使你不打算有更多的条件,我认为这个解决方案会适合你的需要

因为可能有一些方法依赖于更多的条件,而不是两个条件

根据上面的陈述,我想我可以假设你可能有两个以上的条件,也许还有多个组合?在这种情况下,您不想验证
run
方法中的条件

您可以有一个专用的方法,根据需要应用所需的条件,如下所示:

public void runIfTheConditionsAreMet() {
    if(condition1 && condition2) {
        run();
    }
}
这样,您将有一个专门的方法来检查条件,并仅在必要时调用
run
方法,而无需在
method1
method2
中重复代码,并且您将有一个地方可以记录条件(如果需要)

您的代码看起来会更干净一些,如下所示:

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

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

注:即使你不打算有更多的条件,我认为这个解决方案会满足你的需要。

看一下。

看一下。

好的,谢谢你,这似乎是一个类似但很好的方法。所以你认为这是处理基于条件的方法调用的一种常见方法吗?它不是那么常见,因为不是每个人都会有相同的场景。对于正常情况,人们只需使用“publicbooleanmethodxx{returncondition1&&condition2;}”之类的方法,甚至可以使用您所做的操作。但对于您的情况,您必须对“method1”和“method2”重复条件检查,这将使维护更加困难,而且它不利于DRY()。下面是一些关于使用类似于我使用的方法的讨论:,这里是关于分解条件语句的链接,为了说明为什么有方法来检查条件而不是有多个条件的标准“ifs”很好:哦,对不起,我忘了提到。。我在现实世界中见过这个,我自己也用过。好的,谢谢你,这似乎是一个类似但很好的方法。所以你认为这是处理基于条件的方法调用的一种常见方法吗?它不是那么常见,因为不是每个人都会有相同的场景。对于正常情况,人们只需使用“publicbooleanmethodxx{returncondition1&&condition2;}”之类的方法,甚至可以使用您所做的操作。但对于您的情况,您必须对“method1”和“method2”重复条件检查,这将使维护更加困难,而且它不利于DRY()。下面是一些关于使用类似于我使用的方法的讨论:,这里是关于分解条件语句的链接,为了说明为什么有方法来检查条件而不是有多个条件的标准“ifs”很好:哦,对不起,我忘了提到。。我在现实世界中见过,我自己也用过。