在我的工廠方法中,我使用Switch語句來創建具體對象。這導致非常高的圈複雜度。這裏是一個示例代碼:無法在不使用反射的情況下減少工廠方法中的圈複雜度
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);
}
}
我該如何重構這個以減少圈複雜度?如果我使用反射來創建對象或其他東西來構建對象比上面的方法更好嗎?
在默認的情況下試圖返回一個值insted的拋出異常,並嘗試阿恩 – Sumeshk