Ich frage mich, wie man die Cyclomatic Complexity des folgenden Codes reduzieren kann und ob das überhaupt etwas ist, um das ich mir Sorgen machen sollte.Wie reduziere ich die "Cyclomatic Complexity" des folgenden Codes
Bitte beachten Sie die Methode ValuePojo.getSomething() (Bitte nicht über die Variablennamen Sorge, hat dies aus Gründen der Klarheit neu geschrieben worden, in dieser Frage)
public class ValuePojo
{
private ValueTypeEnum type;
private BigDecimal value1;
private BigDecimal value2;
private BigDecimal value3;
public ValuePojo()
{
super();
}
/**
* This method reports as "HIGH Cyclomatic Complexity"
*
* @return
*/
public BigDecimal getSomething()
{
if (this.type == null)
{
return null;
}
switch (this.type)
{
case TYPE_A:
case TYPE_B:
case TYPE_C:
case TYPE_D:
return this.value1;
case TYPE_E:
case TYPE_F:
case TYPE_G:
case TYPE_H:
return this.value2;
case TYPE_I:
case TYPE_J:
return this.value3;
}
return null;
}
}
Was ist die berichtete zyklomatische Komplexität? – Vikdor
11 Ich denke, gerade hoch genug, um den Zustand in Sonar auszulösen, aber nicht auf ein verrücktes Level. –
Sie könnten die Logik in die enum schieben. –