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