Tôi tự hỏi làm thế nào để giảm Độ phức tạp Cyclomatic của mã sau đây và nếu điều này thậm chí là một cái gì đó mà tôi nên lo lắng về.Làm cách nào để giảm "Độ phức tạp Cyclomatic" của mã sau đây
Vui lòng tham khảo ValuePojo.getSomething() phương pháp (Xin đừng lo lắng về việc đặt tên biến, điều này đã được tái bản cho rõ ràng trong câu hỏi này)
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;
}
}
Độ phức tạp chu trình được báo cáo là gì? – Vikdor
11 Tôi nghĩ, chỉ đủ cao để kích hoạt tình trạng ở Sonar nhưng không đến mức điên rồ. –
Bạn có thể đẩy logic vào trong enum. –