Nel metodo factory uso l'istruzione Switch per creare oggetti concreti. Ciò si traduce in una complessità ciclomatica molto elevata. Ecco un codice di esempio:Impossibile ridurre la complessità ciclomatica in un metodo di fabbrica senza utilizzare la riflessione
private static UnitDescriptor createUnitDescriptor(string code)
{
switch (code)
{
case UnitCode.DEG_C:
return new UnitDescriptorDegC();
case UnitCode.DEG_F:
return new UnitDescriptorDegF();
:
:
default:
throw new SystemException(string.format("unknown code: {o}", code);
}
}
Come posso effettuare il refactoring per ridurre la complessità ciclomatica? Se uso la reflection per creare oggetti o qualcos'altro per costruire oggetti è meglio del metodo sopra?
In caso di default tenta di restituire un valore invece di un'eccezione e provare agin – Sumeshk