我有一个需要重构的混乱功能,它有太多嵌套的IF,它让我感到紧张只是看看它!
请忽略函数正在做什么,我更关心结构/流程以及它如何被重构,因此它具有较少的嵌套IF语句
基本流程如下:
public static void HandleUploadedFile(string filename)
{
try
{
if(IsValidFileFormat(filename)
{
int folderID = GetFolderIDFromFilename(filename);
if(folderID > 0)
{
if(HasNoViruses(filename)
{
if(VerifyFileSize(filename)
{
// file is OK
MoveToSafeFolder(filename);
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
else
{
DeleteFile(filename);
}
}
catch (Exception ex)
{
}
finally
{
// do some things
}
}
Run Code Online (Sandbox Code Playgroud)
And*_*nan 10
我很想去:
private static bool CanMoveToSafeFolder(string filename)
{
return IsValidFileFormat(filename)
&& GetFolderIDFromFilename(filename) > 0
&& HasNoViruses(filename)
&& VerifyFileSize(filename);
}
public static void HandleUploadedFile(string filename)
{
try
{
if (CanMoveToSafeFolder(filename))
{
// file is OK
MoveToSafeFolder(filename);
}
else
{
DeleteFile(filename);
}
}
catch (Exception ex)
{
}
finally
{
// do some things
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
848 次 |
最近记录: |