2011-11-27 12 views
6

Spesso si vede un po 'di codice come questo errore:anti-modello: Superfluo altro ramo contenente la clausola di protezione/gestione

public void bla() 
{ 
    if (conditionTrue) 
    { 
    // long code here 
    } else { 
    // otherwise do nothing 
    return; 
    } 
    // some more code 
} 

Il ramo altro, ovviamente, è una certa clausola di salvaguardia che scivolava verso il basso, il rientro per il lungo-code -sezione può essere appiattito:

public void bla() 
{ 
    if (!conditionTrue) 
    return; 

    // long code here 

    // some more code 
} 

Alcuni esperti All'inizio si spegne annidando questi superfluo se rami 3, 4 o 5 livelli, creando codice che è assolutamente difficile da leggere.

So di questi luoghi in qualche modo di toccare questo argomento:

Si tratta di un anti-pattern con nome e qual è il suo nome in tal caso?

risposta

7

puzza come un anti-modello Arrow Code

+0

bello ... non sapevano che, anche se evito come l'inferno. –

+1

Oh uomo, ho molta familiarità con questo tipo di codice: '( – GETah

+0

Grazie per questo, ma in realtà sto cercando un nome per la descritta situazione di ritorno-altro. Il codice Arrow entra in gioco quando si tratta di (il citato) più livelli di indentazione. – mdo