1

我有这个代码:

if(condition 1) {
    if(condition X) {
        myMethod(..., paramx, ...);
    }

    if(condition Y) {
        myMethod(..., paramy, ...);
    } 
 }

if(condition 2) {
    if(condition A) {
        myMethod(..., parama, ...);
    }

    if(condition B) {
        myMethod(..., paramb, ...);
    } 
 }
...

等等。如您所见,我根据条件调用了相同的方法,只使用了一个不同的参数。有什么优雅的方法来解决这个问题?

谢谢!

4

2 回答 2

2
if(condition 1){
   if(condition X){  
      dependentVar = paramx;  
   }

   if(condition Y){
      dependentVar = paramy;
   } 
}

if(condition 2){
   if(condition A){
      dependentVar = parama;
   }

   if(condition B){
      dependentVar = paramb;
   } 
}

... 终于 :

myMethod(..., dependentVar, ...); 

如果没有,这将提高代码的可读性。

显然,这是假设恰好(并且最多)满足其中一个条件

于 2012-05-02T10:27:23.300 回答
0

策略模式是您需要使用的。决策将在策略对象中做出,您只需将它们一一调用,直到其中一个做出肯定答复。

于 2012-10-31T10:31:16.067 回答