Bene, qualcosa che potrebbe essere utile per te sta facendo Refactor:
Refactoring is a disciplined technique for restructuring an existing
body of code, altering its internal structure without changing its
external behavior. Its heart is a series of small behavior preserving
transformations. Each transformation (called a 'refactoring') does
little, but a sequence of transformations can produce a significant
restructuring. Since each refactoring is small, it's less likely to go
wrong. The system is also kept fully working after each small
refactoring, reducing the chances that a system can get seriously
broken during the restructuring.
http://refactoring.com/
C'è un libro a riguardo.
In ogni caso. Ero nella stessa situazione e devo fare un sacco di refactoring, come:
Semplificazione dei blocchi di istruzioni if nei metodi che eseguono "Decompose Conditional"
Decompose Conditional Hai una dichiarazione condizionale complicata (if-then-else). Estrai metodi dalla condizione, poi dalla parte e da altre parti.
if (date.before (SUMMER_START) | | date.after( SUMMER_END))
charge = quantity * _winterRate + _winterServiceCharge;
else
charge = quantity * _summerRate;
Modificato per:
if (notSummer( date))
charge = winterCharge( quantity);
else
charge = summerCharge (quantity);
Consolidamento di espressioni condizionali in un unico metodo. Ad esempio, se ho un gruppo di if in un metodo prima di fare il vero lavoro, allora raggruppo tutti i if in un solo metodo
Una volta che hai fatto un refactoring del tuo codice, ti rendi conto che è facile spostare i pastic insieme quindi a quel punto suggerirei il modello Strategy.
In computer programming, the strategy pattern (also known as the
policy pattern) is a software design pattern, whereby an algorithm's
behaviour can be selected at runtime. http://en.wikipedia.org/wiki/Strategy_pattern
e, infine, rimuovere le istruzioni switch (se ce l'hai) con un po 'di polimorismo.