我如何改进这个逻辑?



我必须在java中实现以下逻辑:

  1. 根据条件C1
  2. 在数据D1上执行查询Q1
  3. 如果Q1的结果大于零,则根据条件C2对数据D2进行另一次查询Q2
  4. 如果Q2大小大于零,则根据条件C3对数据D2进行另一次查询Q3
  5. 如果Q3的大小大于零,则根据条件C4

  6. 对数据D2进行另一次查询Q4。
  7. 现在,如果Q1结果大小为零,则根据条件C5

  8. 对数据D1执行查询Q5
  9. 如果Q5的结果大于零,则根据条件C2对数据D3执行查询Q6
  10. 如果Q6的结果大于零,则根据条件C3对数据D3执行查询Q7
  11. 如果Q7的结果大于零,则根据条件C4对数据D3执行查询Q8

所以我想写下面的逻辑:

 R1 = getResult (dataset D1, condition C1); 
 //Query on data D1 based on  condition C1;
 if (R1 is not null)
 {
   R2  = getResult (dataset R1, condition C2);//  Query on data R1 based on condition C2;
   if(R2 is null)
   {
     R3 = getResult (dataset R1, condition C3);// Query on data R1 based on condition C3
     if(R3 is null)
     {
       R4 = getResult (dataset R1, condition C4);// Query on data R1 based on condition C4
       display(R4);
     }
     else
     {
       display(R3);
     }
   }
   else
   {
     display(R2);
   }
 }
 else
 { 
   R5 = getResult (dataset D1, condition C5);
   if(R5 is not null)
   {
     R6 = getResult (dataset R5, condition C2);//Query on data R5 based on condition C2;
     if(R6 is null)
     {
        R7 = getResult (dataset R5, condition C3);//Query on data R5 based on condition C3
        if(R7 is null)
        {
          R8 =  getResult(dataset R5, condition C4);//Query on data R5 based on condition C3
        }
        else
        {
          display(R8); 
        }
      }
      else
      {
        display(R6);
      }
    }
  }

是否有更好的方法来改进这个逻辑?

不,它不能做得更好,因为您有这两个依赖链Q1 -> Q2 -> Q3 -> Q4和Q5 -> Q6 -> Q7 -> Q8,它们由Q1 -> Q5连接,其中A -> B意味着如果A失败则执行B。你必须像你实现的那样遍历这些链

最新更新